master 79c7ca036255 cached
699 files
1.3 MB
335.6k tokens
2801 symbols
1 requests
Download .txt
Showing preview only (1,564K chars total). Download the full file or copy to clipboard to get everything.
Repository: boredream/DesignResCollection
Branch: master
Commit: 79c7ca036255
Files: 699
Total size: 1.3 MB

Directory structure:
gitextract_frklmp72/

├── .gitattributes
├── .gitignore
├── DesignResCollection_MVC/
│   ├── README.md
│   ├── app/
│   │   ├── build.gradle
│   │   ├── proguard.cfg
│   │   └── src/
│   │       ├── androidTest/
│   │       │   └── java/
│   │       │       └── com/
│   │       │           └── boredream/
│   │       │               └── designrescollection/
│   │       │                   └── ApplicationTest.java
│   │       ├── main/
│   │       │   ├── AndroidManifest.xml
│   │       │   ├── java/
│   │       │   │   └── com/
│   │       │   │       └── boredream/
│   │       │   │           └── designrescollection/
│   │       │   │               ├── activity/
│   │       │   │               │   ├── AboutActivity.java
│   │       │   │               │   ├── FeedBackActivity.java
│   │       │   │               │   ├── LoginActivity.java
│   │       │   │               │   ├── MainActivity.java
│   │       │   │               │   ├── RegisterStep1Activity.java
│   │       │   │               │   ├── RegisterStep2Activity.java
│   │       │   │               │   ├── SettingActivity.java
│   │       │   │               │   ├── UserInfoEditActivity.java
│   │       │   │               │   └── UsernameModifyActivity.java
│   │       │   │               ├── adapter/
│   │       │   │               │   ├── DesignResAdapter.java
│   │       │   │               │   └── MoreRecyclerAdapter.java
│   │       │   │               ├── base/
│   │       │   │               │   ├── BaseActivity.java
│   │       │   │               │   ├── BaseApplication.java
│   │       │   │               │   ├── BaseEntity.java
│   │       │   │               │   └── BaseFragment.java
│   │       │   │               ├── constants/
│   │       │   │               │   └── CommonConstants.java
│   │       │   │               ├── entity/
│   │       │   │               │   ├── Comment.java
│   │       │   │               │   ├── DesignRes.java
│   │       │   │               │   ├── FeedBack.java
│   │       │   │               │   └── User.java
│   │       │   │               ├── fragment/
│   │       │   │               │   ├── HomeFragment.java
│   │       │   │               │   └── UserFragment.java
│   │       │   │               ├── net/
│   │       │   │               │   ├── GlideHelper.java
│   │       │   │               │   ├── HttpRequest.java
│   │       │   │               │   └── SimpleSubscriber.java
│   │       │   │               └── utils/
│   │       │   │                   ├── UpdateUtils.java
│   │       │   │                   └── UserInfoKeeper.java
│   │       │   └── res/
│   │       │       ├── anim/
│   │       │       │   └── loading.xml
│   │       │       ├── color/
│   │       │       │   └── txt_blue2gray_sel.xml
│   │       │       ├── drawable/
│   │       │       │   ├── ic_fav_grey2black_sel.xml
│   │       │       │   ├── ic_home_grey2black_sel.xml
│   │       │       │   ├── ic_more_grey2black_sel.xml
│   │       │       │   ├── ic_search_grey2black_sel.xml
│   │       │       │   ├── ic_settings_grey2black_sel.xml
│   │       │       │   └── oval_progress.xml
│   │       │       ├── layout/
│   │       │       │   ├── activity_about.xml
│   │       │       │   ├── activity_feed_back.xml
│   │       │       │   ├── activity_input.xml
│   │       │       │   ├── activity_login.xml
│   │       │       │   ├── activity_main.xml
│   │       │       │   ├── activity_regist.xml
│   │       │       │   ├── activity_register_step1.xml
│   │       │       │   ├── activity_register_step2.xml
│   │       │       │   ├── activity_setting.xml
│   │       │       │   ├── activity_user_info_edit.xml
│   │       │       │   ├── frag_home.xml
│   │       │       │   ├── frag_user.xml
│   │       │       │   ├── include_bottom_tab.xml
│   │       │       │   ├── include_more_header.xml
│   │       │       │   ├── include_more_no_header.xml
│   │       │       │   ├── item_design_res.xml
│   │       │       │   └── item_more_header.xml
│   │       │       ├── values/
│   │       │       │   ├── colors.xml
│   │       │       │   ├── dimens.xml
│   │       │       │   ├── strings.xml
│   │       │       │   └── styles.xml
│   │       │       └── values-w820dp/
│   │       │           └── dimens.xml
│   │       └── test/
│   │           └── java/
│   │               └── com/
│   │                   └── boredream/
│   │                       └── designrescollection/
│   │                           └── ExampleUnitTest.java
│   ├── bdcodehelper/
│   │   ├── README.md
│   │   ├── build.gradle
│   │   ├── proguard-rules.pro
│   │   └── src/
│   │       ├── androidTest/
│   │       │   └── java/
│   │       │       └── com/
│   │       │           └── boredream/
│   │       │               └── bdcodehelper/
│   │       │                   └── ApplicationTest.java
│   │       └── main/
│   │           ├── AndroidManifest.xml
│   │           ├── assets/
│   │           │   └── city
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── boredream/
│   │           │           └── bdcodehelper/
│   │           │               ├── activity/
│   │           │               │   ├── ImageBrowserActivity.java
│   │           │               │   └── WebViewActivity.java
│   │           │               ├── adapter/
│   │           │               │   ├── BannerPagerAdapter.java
│   │           │               │   ├── ImageBrowserAdapter.java
│   │           │               │   ├── ListDropDownAdapter.java
│   │           │               │   ├── LoadMoreAdapter.java
│   │           │               │   └── SettingRecyclerAdapter.java
│   │           │               ├── base/
│   │           │               │   ├── BoreBaseActivity.java
│   │           │               │   └── BoreBaseEntity.java
│   │           │               ├── db/
│   │           │               │   ├── AddressData.java
│   │           │               │   └── AssetsDatabaseManager.java
│   │           │               ├── entity/
│   │           │               │   ├── AppUpdateInfo.java
│   │           │               │   ├── ErrorResponse.java
│   │           │               │   ├── FileUploadResponse.java
│   │           │               │   ├── FormItem.java
│   │           │               │   ├── ImageUrlInterface.java
│   │           │               │   ├── ListResponse.java
│   │           │               │   ├── PageIndex.java
│   │           │               │   ├── Pointer.java
│   │           │               │   ├── Relation.java
│   │           │               │   ├── RelationTo.java
│   │           │               │   ├── SettingItem.java
│   │           │               │   ├── UpdatePswRequest.java
│   │           │               │   ├── Where.java
│   │           │               │   └── city/
│   │           │               │       ├── BaseAddressModel.java
│   │           │               │       └── CityModel.java
│   │           │               ├── fragment/
│   │           │               │   └── FragmentController.java
│   │           │               ├── net/
│   │           │               │   ├── ErrorConstants.java
│   │           │               │   ├── GlideCircleTransform.java
│   │           │               │   ├── MultiPageRequest.java
│   │           │               │   ├── ObservableDecorator.java
│   │           │               │   └── RoundedCornersTransformation.java
│   │           │               ├── present/
│   │           │               │   ├── FormItemsPresent.java
│   │           │               │   ├── GroupEtEmptyCheckPresent.java
│   │           │               │   ├── ImageBannerPresent.java
│   │           │               │   ├── ImageBrowserPresent.java
│   │           │               │   └── MultiPageLoadPresent.java
│   │           │               ├── utils/
│   │           │               │   ├── ActivityUtils.java
│   │           │               │   ├── AppUtils.java
│   │           │               │   ├── DateUtils.java
│   │           │               │   ├── DialogUtils.java
│   │           │               │   ├── DisplayUtils.java
│   │           │               │   ├── ErrorInfoUtils.java
│   │           │               │   ├── ImageUtils.java
│   │           │               │   ├── LogUtils.java
│   │           │               │   ├── NetUtils.java
│   │           │               │   ├── StringUtils.java
│   │           │               │   ├── TitleBuilder.java
│   │           │               │   ├── ToastUtils.java
│   │           │               │   └── ViewUtils.java
│   │           │               └── view/
│   │           │                   ├── AddressWheelDialog.java
│   │           │                   ├── BottomTabRadioButton.java
│   │           │                   ├── CheckableLinearLayout.java
│   │           │                   ├── DividerItemDecoration.java
│   │           │                   ├── DrawableRadioButton.java
│   │           │                   ├── DrawableTextView.java
│   │           │                   ├── DropDownMenu.java
│   │           │                   ├── EmptyItemDecoration.java
│   │           │                   ├── GridSpacingDecorator.java
│   │           │                   ├── PinnedSectionListView.java
│   │           │                   ├── PositionBar.java
│   │           │                   ├── WrapHeightGridView.java
│   │           │                   ├── WrapHeightLinearLayoutManager.java
│   │           │                   ├── WrapHeightListView.java
│   │           │                   └── wheel/
│   │           │                       ├── ItemsRange.java
│   │           │                       ├── OnWheelChangedListener.java
│   │           │                       ├── OnWheelClickedListener.java
│   │           │                       ├── OnWheelScrollListener.java
│   │           │                       ├── WheelAdapter.java
│   │           │                       ├── WheelRecycle.java
│   │           │                       ├── WheelScroller.java
│   │           │                       ├── WheelView.java
│   │           │                       └── adapters/
│   │           │                           ├── AbstractWheelAdapter.java
│   │           │                           ├── AbstractWheelTextAdapter.java
│   │           │                           ├── AdapterWheel.java
│   │           │                           ├── ArrayWheelAdapter.java
│   │           │                           ├── NumericWheelAdapter.java
│   │           │                           └── WheelViewAdapter.java
│   │           ├── libs/
│   │           │   └── nineoldandroids-2.2.0.jar
│   │           └── res/
│   │               ├── anim/
│   │               │   ├── dd_mask_in.xml
│   │               │   ├── dd_mask_out.xml
│   │               │   ├── dd_menu_in.xml
│   │               │   └── dd_menu_out.xml
│   │               ├── color/
│   │               │   ├── txt_blue2gray_sel.xml
│   │               │   ├── txt_gray2primarydark_sel.xml
│   │               │   ├── txt_lgray2white_sel.xml
│   │               │   ├── txt_primary2white_sel.xml
│   │               │   └── txt_white2gray_sel.xml
│   │               ├── drawable/
│   │               │   ├── bg_gray2dark_sel.xml
│   │               │   ├── bg_primary2dark_sel.xml
│   │               │   ├── bg_primarydark_indicator_sel.xml
│   │               │   ├── bg_tran2gray_sel.xml
│   │               │   ├── bg_white2gray_sel.xml
│   │               │   ├── cirrect_10a_primary_solid.xml
│   │               │   ├── cirrect_5a_primary_solid.xml
│   │               │   ├── cirrect_primary_stroke.xml
│   │               │   ├── correct_gray_stroke.xml
│   │               │   ├── correct_primary.xml
│   │               │   ├── correct_primary2dark_sel.xml
│   │               │   ├── correct_primary_dark.xml
│   │               │   ├── correct_primary_light.xml
│   │               │   ├── correct_primary_stroke.xml
│   │               │   ├── correct_primary_stroke2solid_sel.xml
│   │               │   ├── layerlist_primarydark_indicator.xml
│   │               │   ├── oval_primary_light_solid.xml
│   │               │   ├── oval_primary_solid.xml
│   │               │   ├── shape_bottom_line.xml
│   │               │   ├── shape_oval_primary2white_sel.xml
│   │               │   ├── shape_oval_primary_stroke.xml
│   │               │   ├── shape_oval_primary_stroke2solid_sel.xml
│   │               │   ├── shape_oval_red_solid.xml
│   │               │   ├── shape_oval_white_solid.xml
│   │               │   ├── shape_top_line.xml
│   │               │   ├── wheel_bg.xml
│   │               │   └── wheel_val.xml
│   │               ├── layout/
│   │               │   ├── activity_image_browser.xml
│   │               │   ├── activity_web_view.xml
│   │               │   ├── footer_progress.xml
│   │               │   ├── formitem_input.xml
│   │               │   ├── formitem_select.xml
│   │               │   ├── include_banner_with_indicator.xml
│   │               │   ├── include_ddm_listview.xml
│   │               │   ├── include_group_divider.xml
│   │               │   ├── include_refresh_list.xml
│   │               │   ├── include_titlebar.xml
│   │               │   ├── item_default_drop_down.xml
│   │               │   ├── item_image_banner.xml
│   │               │   ├── item_image_browser.xml
│   │               │   ├── item_setting.xml
│   │               │   ├── listview_dropdown_menu.xml
│   │               │   └── wheel_dialog_address.xml
│   │               └── values/
│   │                   ├── attrs.xml
│   │                   ├── colors.xml
│   │                   ├── dimens.xml
│   │                   ├── strings.xml
│   │                   └── styles.xml
│   ├── build.gradle
│   ├── gradle/
│   │   └── wrapper/
│   │       ├── gradle-wrapper.jar
│   │       └── gradle-wrapper.properties
│   ├── gradle.properties
│   ├── gradlew
│   ├── gradlew.bat
│   └── settings.gradle
├── DesignResCollection_MVP/
│   ├── README.md
│   ├── app/
│   │   ├── build.gradle
│   │   ├── proguard.cfg
│   │   └── src/
│   │       ├── androidTest/
│   │       │   └── java/
│   │       │       └── com/
│   │       │           └── boredream/
│   │       │               └── designrescollection/
│   │       │                   ├── ApplicationTest.java
│   │       │                   ├── idlingres/
│   │       │                   │   └── RxIdlingResource.java
│   │       │                   └── ui/
│   │       │                       ├── login/
│   │       │                       │   └── LoginActivityTest.java
│   │       │                       └── userinfoedit/
│   │       │                           └── UserInfoEditActivityTest.java
│   │       ├── main/
│   │       │   ├── AndroidManifest.xml
│   │       │   ├── java/
│   │       │   │   └── com/
│   │       │   │       └── boredream/
│   │       │   │           └── designrescollection/
│   │       │   │               ├── adapter/
│   │       │   │               │   ├── DesignResAdapter.java
│   │       │   │               │   └── MoreRecyclerAdapter.java
│   │       │   │               ├── base/
│   │       │   │               │   ├── BaseActivity.java
│   │       │   │               │   ├── BaseApplication.java
│   │       │   │               │   ├── BaseEntity.java
│   │       │   │               │   ├── BaseFragment.java
│   │       │   │               │   ├── BasePresenter.java
│   │       │   │               │   └── BaseView.java
│   │       │   │               ├── constants/
│   │       │   │               │   └── CommonConstants.java
│   │       │   │               ├── entity/
│   │       │   │               │   ├── Comment.java
│   │       │   │               │   ├── DesignRes.java
│   │       │   │               │   ├── FeedBack.java
│   │       │   │               │   └── User.java
│   │       │   │               ├── net/
│   │       │   │               │   ├── GlideHelper.java
│   │       │   │               │   ├── HttpRequest.java
│   │       │   │               │   └── SimpleSubscriber.java
│   │       │   │               ├── ui/
│   │       │   │               │   ├── AboutActivity.java
│   │       │   │               │   ├── MainActivity.java
│   │       │   │               │   ├── SettingActivity.java
│   │       │   │               │   ├── UserFragment.java
│   │       │   │               │   ├── feedback/
│   │       │   │               │   │   ├── FeedBackActivity.java
│   │       │   │               │   │   ├── FeedBackContract.java
│   │       │   │               │   │   └── FeedBackPresenter.java
│   │       │   │               │   ├── home/
│   │       │   │               │   │   ├── HomeContract.java
│   │       │   │               │   │   ├── HomeFragment.java
│   │       │   │               │   │   └── HomePresenter.java
│   │       │   │               │   ├── login/
│   │       │   │               │   │   ├── LoginActivity.java
│   │       │   │               │   │   ├── LoginContract.java
│   │       │   │               │   │   ├── LoginFragment.java
│   │       │   │               │   │   └── LoginPresenter.java
│   │       │   │               │   ├── modifytext/
│   │       │   │               │   │   ├── ModifyTextActivity.java
│   │       │   │               │   │   ├── ModifyTextContract.java
│   │       │   │               │   │   └── ModifyTextPresenter.java
│   │       │   │               │   ├── register/
│   │       │   │               │   │   ├── RegisterContract.java
│   │       │   │               │   │   ├── RegisterPresenter.java
│   │       │   │               │   │   ├── RegisterStep1Activity.java
│   │       │   │               │   │   └── RegisterStep2Activity.java
│   │       │   │               │   └── userinfoedit/
│   │       │   │               │       ├── UserInfoEditActivity.java
│   │       │   │               │       ├── UserInfoEditContract.java
│   │       │   │               │       └── UserInfoEditPresenter.java
│   │       │   │               └── utils/
│   │       │   │                   ├── UpdateUtils.java
│   │       │   │                   └── UserInfoKeeper.java
│   │       │   └── res/
│   │       │       ├── anim/
│   │       │       │   └── loading.xml
│   │       │       ├── color/
│   │       │       │   └── txt_blue2gray_sel.xml
│   │       │       ├── drawable/
│   │       │       │   ├── ic_fav_grey2black_sel.xml
│   │       │       │   ├── ic_home_grey2black_sel.xml
│   │       │       │   ├── ic_more_grey2black_sel.xml
│   │       │       │   ├── ic_search_grey2black_sel.xml
│   │       │       │   ├── ic_settings_grey2black_sel.xml
│   │       │       │   └── oval_progress.xml
│   │       │       ├── layout/
│   │       │       │   ├── activity_about.xml
│   │       │       │   ├── activity_feed_back.xml
│   │       │       │   ├── activity_input.xml
│   │       │       │   ├── activity_login.xml
│   │       │       │   ├── activity_main.xml
│   │       │       │   ├── activity_regist.xml
│   │       │       │   ├── activity_register_step1.xml
│   │       │       │   ├── activity_register_step2.xml
│   │       │       │   ├── activity_setting.xml
│   │       │       │   ├── activity_user_info_edit.xml
│   │       │       │   ├── frag_home.xml
│   │       │       │   ├── frag_login.xml
│   │       │       │   ├── frag_user.xml
│   │       │       │   ├── include_bottom_tab.xml
│   │       │       │   ├── include_more_header.xml
│   │       │       │   ├── include_more_no_header.xml
│   │       │       │   ├── item_design_res.xml
│   │       │       │   └── item_more_header.xml
│   │       │       ├── menu/
│   │       │       │   └── menu_main2.xml
│   │       │       ├── values/
│   │       │       │   ├── colors.xml
│   │       │       │   ├── dimens.xml
│   │       │       │   ├── strings.xml
│   │       │       │   └── styles.xml
│   │       │       └── values-w820dp/
│   │       │           └── dimens.xml
│   │       └── test/
│   │           └── java/
│   │               └── com/
│   │                   └── boredream/
│   │                       └── designrescollection/
│   │                           ├── net/
│   │                           │   └── HttpRequestTest.java
│   │                           └── ui/
│   │                               ├── feedback/
│   │                               │   └── FeedBackPresenterTest.java
│   │                               ├── home/
│   │                               │   └── HomePresenterTest.java
│   │                               ├── login/
│   │                               │   └── LoginPresenterTest.java
│   │                               ├── modifytext/
│   │                               │   └── ModifyTextPresenterTest.java
│   │                               ├── register/
│   │                               │   └── RegisterPresenterTest.java
│   │                               └── userinfoedit/
│   │                                   └── UserInfoEditPresenterTest.java
│   ├── bdcodehelper/
│   │   ├── README.md
│   │   ├── build.gradle
│   │   ├── proguard-rules.pro
│   │   └── src/
│   │       └── main/
│   │           ├── AndroidManifest.xml
│   │           ├── assets/
│   │           │   └── city
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── boredream/
│   │           │           └── bdcodehelper/
│   │           │               ├── BoreConstants.java
│   │           │               ├── activity/
│   │           │               │   ├── ImageBrowserActivity.java
│   │           │               │   └── WebViewActivity.java
│   │           │               ├── adapter/
│   │           │               │   ├── BannerPagerAdapter.java
│   │           │               │   ├── ImageBrowserAdapter.java
│   │           │               │   ├── ListDropDownAdapter.java
│   │           │               │   ├── LoadMoreAdapter.java
│   │           │               │   └── SettingRecyclerAdapter.java
│   │           │               ├── base/
│   │           │               │   ├── BoreBaseActivity.java
│   │           │               │   └── BoreBaseEntity.java
│   │           │               ├── db/
│   │           │               │   ├── AddressData.java
│   │           │               │   └── AssetsDatabaseManager.java
│   │           │               ├── entity/
│   │           │               │   ├── AppUpdateInfo.java
│   │           │               │   ├── ErrorResponse.java
│   │           │               │   ├── FileInfo.java
│   │           │               │   ├── FileUploadResponse.java
│   │           │               │   ├── FormItem.java
│   │           │               │   ├── ImageUrlInterface.java
│   │           │               │   ├── ListResponse.java
│   │           │               │   ├── PageIndex.java
│   │           │               │   ├── Pointer.java
│   │           │               │   ├── Relation.java
│   │           │               │   ├── RelationTo.java
│   │           │               │   ├── SettingItem.java
│   │           │               │   ├── UpdatePswRequest.java
│   │           │               │   ├── Where.java
│   │           │               │   └── city/
│   │           │               │       ├── BaseAddressModel.java
│   │           │               │       └── CityModel.java
│   │           │               ├── fragment/
│   │           │               │   └── FragmentController.java
│   │           │               ├── net/
│   │           │               │   ├── ErrorConstants.java
│   │           │               │   ├── GlideCircleTransform.java
│   │           │               │   ├── MultiPageRequest.java
│   │           │               │   ├── ObservableDecorator.java
│   │           │               │   └── RoundedCornersTransformation.java
│   │           │               ├── present/
│   │           │               │   ├── FormItemsPresent.java
│   │           │               │   ├── GroupEtEmptyCheckPresent.java
│   │           │               │   ├── ImageBannerPresent.java
│   │           │               │   ├── ImageBrowserPresent.java
│   │           │               │   └── MultiPageLoadPresent.java
│   │           │               ├── utils/
│   │           │               │   ├── ActivityUtils.java
│   │           │               │   ├── AppUtils.java
│   │           │               │   ├── DateUtils.java
│   │           │               │   ├── DialogUtils.java
│   │           │               │   ├── DisplayUtils.java
│   │           │               │   ├── ErrorInfoUtils.java
│   │           │               │   ├── ImageUtils.java
│   │           │               │   ├── LogUtils.java
│   │           │               │   ├── NetUtils.java
│   │           │               │   ├── StringUtils.java
│   │           │               │   ├── TitleBuilder.java
│   │           │               │   ├── ToastUtils.java
│   │           │               │   └── ViewUtils.java
│   │           │               └── view/
│   │           │                   ├── AddressWheelDialog.java
│   │           │                   ├── BottomTabRadioButton.java
│   │           │                   ├── CheckableLinearLayout.java
│   │           │                   ├── DividerItemDecoration.java
│   │           │                   ├── DrawableRadioButton.java
│   │           │                   ├── DrawableTextView.java
│   │           │                   ├── DropDownMenu.java
│   │           │                   ├── EmptyItemDecoration.java
│   │           │                   ├── GridSpacingDecorator.java
│   │           │                   ├── PinnedSectionListView.java
│   │           │                   ├── PositionBar.java
│   │           │                   ├── WrapHeightGridView.java
│   │           │                   ├── WrapHeightLinearLayoutManager.java
│   │           │                   ├── WrapHeightListView.java
│   │           │                   └── wheel/
│   │           │                       ├── ItemsRange.java
│   │           │                       ├── OnWheelChangedListener.java
│   │           │                       ├── OnWheelClickedListener.java
│   │           │                       ├── OnWheelScrollListener.java
│   │           │                       ├── WheelAdapter.java
│   │           │                       ├── WheelRecycle.java
│   │           │                       ├── WheelScroller.java
│   │           │                       ├── WheelView.java
│   │           │                       └── adapters/
│   │           │                           ├── AbstractWheelAdapter.java
│   │           │                           ├── AbstractWheelTextAdapter.java
│   │           │                           ├── AdapterWheel.java
│   │           │                           ├── ArrayWheelAdapter.java
│   │           │                           ├── NumericWheelAdapter.java
│   │           │                           └── WheelViewAdapter.java
│   │           ├── libs/
│   │           │   └── nineoldandroids-2.2.0.jar
│   │           └── res/
│   │               ├── anim/
│   │               │   ├── dd_mask_in.xml
│   │               │   ├── dd_mask_out.xml
│   │               │   ├── dd_menu_in.xml
│   │               │   └── dd_menu_out.xml
│   │               ├── color/
│   │               │   ├── txt_blue2gray_sel.xml
│   │               │   ├── txt_gray2primarydark_sel.xml
│   │               │   ├── txt_lgray2white_sel.xml
│   │               │   ├── txt_primary2white_sel.xml
│   │               │   └── txt_white2gray_sel.xml
│   │               ├── drawable/
│   │               │   ├── bg_gray2dark_sel.xml
│   │               │   ├── bg_primary2dark_sel.xml
│   │               │   ├── bg_primarydark_indicator_sel.xml
│   │               │   ├── bg_tran2gray_sel.xml
│   │               │   ├── bg_white2gray_sel.xml
│   │               │   ├── cirrect_10a_primary_solid.xml
│   │               │   ├── cirrect_5a_primary_solid.xml
│   │               │   ├── cirrect_primary_stroke.xml
│   │               │   ├── correct_gray_stroke.xml
│   │               │   ├── correct_primary.xml
│   │               │   ├── correct_primary2dark_sel.xml
│   │               │   ├── correct_primary_dark.xml
│   │               │   ├── correct_primary_light.xml
│   │               │   ├── correct_primary_stroke.xml
│   │               │   ├── correct_primary_stroke2solid_sel.xml
│   │               │   ├── layerlist_primarydark_indicator.xml
│   │               │   ├── oval_primary_light_solid.xml
│   │               │   ├── oval_primary_solid.xml
│   │               │   ├── shape_bottom_line.xml
│   │               │   ├── shape_oval_primary2white_sel.xml
│   │               │   ├── shape_oval_primary_stroke.xml
│   │               │   ├── shape_oval_primary_stroke2solid_sel.xml
│   │               │   ├── shape_oval_red_solid.xml
│   │               │   ├── shape_oval_white_solid.xml
│   │               │   ├── shape_top_line.xml
│   │               │   ├── wheel_bg.xml
│   │               │   └── wheel_val.xml
│   │               ├── layout/
│   │               │   ├── activity_image_browser.xml
│   │               │   ├── activity_web_view.xml
│   │               │   ├── footer_progress.xml
│   │               │   ├── formitem_input.xml
│   │               │   ├── formitem_select.xml
│   │               │   ├── include_banner_with_indicator.xml
│   │               │   ├── include_ddm_listview.xml
│   │               │   ├── include_group_divider.xml
│   │               │   ├── include_refresh_list.xml
│   │               │   ├── include_titlebar.xml
│   │               │   ├── item_default_drop_down.xml
│   │               │   ├── item_image_banner.xml
│   │               │   ├── item_image_browser.xml
│   │               │   ├── item_setting.xml
│   │               │   ├── listview_dropdown_menu.xml
│   │               │   └── wheel_dialog_address.xml
│   │               └── values/
│   │                   ├── attrs.xml
│   │                   ├── colors.xml
│   │                   ├── dimens.xml
│   │                   ├── strings.xml
│   │                   └── styles.xml
│   ├── build.gradle
│   ├── gradle/
│   │   └── wrapper/
│   │       ├── gradle-wrapper.jar
│   │       └── gradle-wrapper.properties
│   ├── gradle.properties
│   ├── gradlew
│   ├── gradlew.bat
│   └── settings.gradle
├── DesignResCollection_MVP-Dagger2/
│   ├── README.md
│   ├── app/
│   │   ├── build.gradle
│   │   ├── proguard.cfg
│   │   └── src/
│   │       ├── androidTest/
│   │       │   └── java/
│   │       │       └── com/
│   │       │           └── boredream/
│   │       │               └── designrescollection/
│   │       │                   ├── ApplicationTest.java
│   │       │                   ├── idlingres/
│   │       │                   │   └── RxIdlingResource.java
│   │       │                   └── ui/
│   │       │                       ├── login/
│   │       │                       │   └── LoginActivityTest.java
│   │       │                       └── userinfoedit/
│   │       │                           └── UserInfoEditActivityTest.java
│   │       ├── main/
│   │       │   ├── AndroidManifest.xml
│   │       │   ├── java/
│   │       │   │   └── com/
│   │       │   │       └── boredream/
│   │       │   │           └── designrescollection/
│   │       │   │               ├── adapter/
│   │       │   │               │   ├── DesignResAdapter.java
│   │       │   │               │   └── MoreRecyclerAdapter.java
│   │       │   │               ├── base/
│   │       │   │               │   ├── BaseActivity.java
│   │       │   │               │   ├── BaseApplication.java
│   │       │   │               │   ├── BaseEntity.java
│   │       │   │               │   ├── BaseFragment.java
│   │       │   │               │   ├── BasePresenter.java
│   │       │   │               │   └── BaseView.java
│   │       │   │               ├── constants/
│   │       │   │               │   └── CommonConstants.java
│   │       │   │               ├── entity/
│   │       │   │               │   ├── Comment.java
│   │       │   │               │   ├── DesignRes.java
│   │       │   │               │   ├── FeedBack.java
│   │       │   │               │   └── User.java
│   │       │   │               ├── net/
│   │       │   │               │   ├── ApiModule.java
│   │       │   │               │   ├── ApiService.java
│   │       │   │               │   ├── AppComponent.java
│   │       │   │               │   ├── GlideHelper.java
│   │       │   │               │   └── SimpleSubscriber.java
│   │       │   │               ├── ui/
│   │       │   │               │   ├── AboutActivity.java
│   │       │   │               │   ├── MainActivity.java
│   │       │   │               │   ├── SettingActivity.java
│   │       │   │               │   ├── UserFragment.java
│   │       │   │               │   ├── feedback/
│   │       │   │               │   │   ├── FeedBackActivity.java
│   │       │   │               │   │   ├── FeedBackContract.java
│   │       │   │               │   │   └── FeedBackPresenter.java
│   │       │   │               │   ├── home/
│   │       │   │               │   │   ├── HomeContract.java
│   │       │   │               │   │   ├── HomeFragment.java
│   │       │   │               │   │   └── HomePresenter.java
│   │       │   │               │   ├── login/
│   │       │   │               │   │   ├── LoginActivity.java
│   │       │   │               │   │   ├── LoginComponent.java
│   │       │   │               │   │   ├── LoginContract.java
│   │       │   │               │   │   ├── LoginFragment.java
│   │       │   │               │   │   ├── LoginPresenter.java
│   │       │   │               │   │   └── LoginPresenterModule.java
│   │       │   │               │   ├── modifytext/
│   │       │   │               │   │   ├── ModifyTextActivity.java
│   │       │   │               │   │   ├── ModifyTextContract.java
│   │       │   │               │   │   └── ModifyTextPresenter.java
│   │       │   │               │   ├── register/
│   │       │   │               │   │   ├── RegisterContract.java
│   │       │   │               │   │   ├── RegisterPresenter.java
│   │       │   │               │   │   ├── RegisterStep1Activity.java
│   │       │   │               │   │   └── RegisterStep2Activity.java
│   │       │   │               │   └── userinfoedit/
│   │       │   │               │       ├── UserInfoEditActivity.java
│   │       │   │               │       ├── UserInfoEditContract.java
│   │       │   │               │       └── UserInfoEditPresenter.java
│   │       │   │               └── utils/
│   │       │   │                   ├── PerActivity.java
│   │       │   │                   ├── PerApplication.java
│   │       │   │                   ├── UpdateUtils.java
│   │       │   │                   └── UserInfoKeeper.java
│   │       │   └── res/
│   │       │       ├── anim/
│   │       │       │   └── loading.xml
│   │       │       ├── color/
│   │       │       │   └── txt_blue2gray_sel.xml
│   │       │       ├── drawable/
│   │       │       │   ├── ic_fav_grey2black_sel.xml
│   │       │       │   ├── ic_home_grey2black_sel.xml
│   │       │       │   ├── ic_more_grey2black_sel.xml
│   │       │       │   ├── ic_search_grey2black_sel.xml
│   │       │       │   ├── ic_settings_grey2black_sel.xml
│   │       │       │   └── oval_progress.xml
│   │       │       ├── layout/
│   │       │       │   ├── activity_about.xml
│   │       │       │   ├── activity_feed_back.xml
│   │       │       │   ├── activity_input.xml
│   │       │       │   ├── activity_login.xml
│   │       │       │   ├── activity_main.xml
│   │       │       │   ├── activity_regist.xml
│   │       │       │   ├── activity_register_step1.xml
│   │       │       │   ├── activity_register_step2.xml
│   │       │       │   ├── activity_setting.xml
│   │       │       │   ├── activity_user_info_edit.xml
│   │       │       │   ├── frag_home.xml
│   │       │       │   ├── frag_login.xml
│   │       │       │   ├── frag_user.xml
│   │       │       │   ├── include_bottom_tab.xml
│   │       │       │   ├── include_more_header.xml
│   │       │       │   ├── include_more_no_header.xml
│   │       │       │   ├── item_design_res.xml
│   │       │       │   └── item_more_header.xml
│   │       │       ├── menu/
│   │       │       │   └── menu_main2.xml
│   │       │       ├── values/
│   │       │       │   ├── colors.xml
│   │       │       │   ├── dimens.xml
│   │       │       │   ├── strings.xml
│   │       │       │   └── styles.xml
│   │       │       └── values-w820dp/
│   │       │           └── dimens.xml
│   │       └── test/
│   │           └── java/
│   │               └── com/
│   │                   └── boredream/
│   │                       └── designrescollection/
│   │                           ├── net/
│   │                           │   └── HttpRequestTest.java
│   │                           └── ui/
│   │                               ├── feedback/
│   │                               │   └── FeedBackPresenterTest.java
│   │                               ├── home/
│   │                               │   └── HomePresenterTest.java
│   │                               ├── login/
│   │                               │   └── LoginPresenterTest.java
│   │                               ├── modifytext/
│   │                               │   └── ModifyTextPresenterTest.java
│   │                               ├── register/
│   │                               │   └── RegisterPresenterTest.java
│   │                               └── userinfoedit/
│   │                                   └── UserInfoEditPresenterTest.java
│   ├── bdcodehelper/
│   │   ├── README.md
│   │   ├── build.gradle
│   │   ├── proguard-rules.pro
│   │   └── src/
│   │       └── main/
│   │           ├── AndroidManifest.xml
│   │           ├── assets/
│   │           │   └── city
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── boredream/
│   │           │           └── bdcodehelper/
│   │           │               ├── BoreConstants.java
│   │           │               ├── activity/
│   │           │               │   ├── ImageBrowserActivity.java
│   │           │               │   └── WebViewActivity.java
│   │           │               ├── adapter/
│   │           │               │   ├── BannerPagerAdapter.java
│   │           │               │   ├── ImageBrowserAdapter.java
│   │           │               │   ├── ListDropDownAdapter.java
│   │           │               │   ├── LoadMoreAdapter.java
│   │           │               │   └── SettingRecyclerAdapter.java
│   │           │               ├── base/
│   │           │               │   ├── BoreBaseActivity.java
│   │           │               │   └── BoreBaseEntity.java
│   │           │               ├── db/
│   │           │               │   ├── AddressData.java
│   │           │               │   └── AssetsDatabaseManager.java
│   │           │               ├── entity/
│   │           │               │   ├── AppUpdateInfo.java
│   │           │               │   ├── ErrorResponse.java
│   │           │               │   ├── FileInfo.java
│   │           │               │   ├── FileUploadResponse.java
│   │           │               │   ├── FormItem.java
│   │           │               │   ├── ImageUrlInterface.java
│   │           │               │   ├── ListResponse.java
│   │           │               │   ├── PageIndex.java
│   │           │               │   ├── Pointer.java
│   │           │               │   ├── Relation.java
│   │           │               │   ├── RelationTo.java
│   │           │               │   ├── SettingItem.java
│   │           │               │   ├── UpdatePswRequest.java
│   │           │               │   ├── Where.java
│   │           │               │   └── city/
│   │           │               │       ├── BaseAddressModel.java
│   │           │               │       └── CityModel.java
│   │           │               ├── fragment/
│   │           │               │   └── FragmentController.java
│   │           │               ├── net/
│   │           │               │   ├── ErrorConstants.java
│   │           │               │   ├── GlideCircleTransform.java
│   │           │               │   ├── MultiPageRequest.java
│   │           │               │   ├── ObservableDecorator.java
│   │           │               │   └── RoundedCornersTransformation.java
│   │           │               ├── present/
│   │           │               │   ├── FormItemsPresent.java
│   │           │               │   ├── GroupEtEmptyCheckPresent.java
│   │           │               │   ├── ImageBannerPresent.java
│   │           │               │   ├── ImageBrowserPresent.java
│   │           │               │   └── MultiPageLoadPresent.java
│   │           │               ├── utils/
│   │           │               │   ├── ActivityUtils.java
│   │           │               │   ├── AppUtils.java
│   │           │               │   ├── DateUtils.java
│   │           │               │   ├── DialogUtils.java
│   │           │               │   ├── DisplayUtils.java
│   │           │               │   ├── ErrorInfoUtils.java
│   │           │               │   ├── ImageUtils.java
│   │           │               │   ├── LogUtils.java
│   │           │               │   ├── NetUtils.java
│   │           │               │   ├── StringUtils.java
│   │           │               │   ├── TitleBuilder.java
│   │           │               │   ├── ToastUtils.java
│   │           │               │   └── ViewUtils.java
│   │           │               └── view/
│   │           │                   ├── AddressWheelDialog.java
│   │           │                   ├── BottomTabRadioButton.java
│   │           │                   ├── CheckableLinearLayout.java
│   │           │                   ├── DividerItemDecoration.java
│   │           │                   ├── DrawableRadioButton.java
│   │           │                   ├── DrawableTextView.java
│   │           │                   ├── DropDownMenu.java
│   │           │                   ├── EmptyItemDecoration.java
│   │           │                   ├── GridSpacingDecorator.java
│   │           │                   ├── PinnedSectionListView.java
│   │           │                   ├── PositionBar.java
│   │           │                   ├── WrapHeightGridView.java
│   │           │                   ├── WrapHeightLinearLayoutManager.java
│   │           │                   ├── WrapHeightListView.java
│   │           │                   └── wheel/
│   │           │                       ├── ItemsRange.java
│   │           │                       ├── OnWheelChangedListener.java
│   │           │                       ├── OnWheelClickedListener.java
│   │           │                       ├── OnWheelScrollListener.java
│   │           │                       ├── WheelAdapter.java
│   │           │                       ├── WheelRecycle.java
│   │           │                       ├── WheelScroller.java
│   │           │                       ├── WheelView.java
│   │           │                       └── adapters/
│   │           │                           ├── AbstractWheelAdapter.java
│   │           │                           ├── AbstractWheelTextAdapter.java
│   │           │                           ├── AdapterWheel.java
│   │           │                           ├── ArrayWheelAdapter.java
│   │           │                           ├── NumericWheelAdapter.java
│   │           │                           └── WheelViewAdapter.java
│   │           ├── libs/
│   │           │   └── nineoldandroids-2.2.0.jar
│   │           └── res/
│   │               ├── anim/
│   │               │   ├── dd_mask_in.xml
│   │               │   ├── dd_mask_out.xml
│   │               │   ├── dd_menu_in.xml
│   │               │   └── dd_menu_out.xml
│   │               ├── color/
│   │               │   ├── txt_blue2gray_sel.xml
│   │               │   ├── txt_gray2primarydark_sel.xml
│   │               │   ├── txt_lgray2white_sel.xml
│   │               │   ├── txt_primary2white_sel.xml
│   │               │   └── txt_white2gray_sel.xml
│   │               ├── drawable/
│   │               │   ├── bg_gray2dark_sel.xml
│   │               │   ├── bg_primary2dark_sel.xml
│   │               │   ├── bg_primarydark_indicator_sel.xml
│   │               │   ├── bg_tran2gray_sel.xml
│   │               │   ├── bg_white2gray_sel.xml
│   │               │   ├── cirrect_10a_primary_solid.xml
│   │               │   ├── cirrect_5a_primary_solid.xml
│   │               │   ├── cirrect_primary_stroke.xml
│   │               │   ├── correct_gray_stroke.xml
│   │               │   ├── correct_primary.xml
│   │               │   ├── correct_primary2dark_sel.xml
│   │               │   ├── correct_primary_dark.xml
│   │               │   ├── correct_primary_light.xml
│   │               │   ├── correct_primary_stroke.xml
│   │               │   ├── correct_primary_stroke2solid_sel.xml
│   │               │   ├── layerlist_primarydark_indicator.xml
│   │               │   ├── oval_primary_light_solid.xml
│   │               │   ├── oval_primary_solid.xml
│   │               │   ├── shape_bottom_line.xml
│   │               │   ├── shape_oval_primary2white_sel.xml
│   │               │   ├── shape_oval_primary_stroke.xml
│   │               │   ├── shape_oval_primary_stroke2solid_sel.xml
│   │               │   ├── shape_oval_red_solid.xml
│   │               │   ├── shape_oval_white_solid.xml
│   │               │   ├── shape_top_line.xml
│   │               │   ├── wheel_bg.xml
│   │               │   └── wheel_val.xml
│   │               ├── layout/
│   │               │   ├── activity_image_browser.xml
│   │               │   ├── activity_web_view.xml
│   │               │   ├── footer_progress.xml
│   │               │   ├── formitem_input.xml
│   │               │   ├── formitem_select.xml
│   │               │   ├── include_banner_with_indicator.xml
│   │               │   ├── include_ddm_listview.xml
│   │               │   ├── include_group_divider.xml
│   │               │   ├── include_refresh_list.xml
│   │               │   ├── include_titlebar.xml
│   │               │   ├── item_default_drop_down.xml
│   │               │   ├── item_image_banner.xml
│   │               │   ├── item_image_browser.xml
│   │               │   ├── item_setting.xml
│   │               │   ├── listview_dropdown_menu.xml
│   │               │   └── wheel_dialog_address.xml
│   │               └── values/
│   │                   ├── attrs.xml
│   │                   ├── colors.xml
│   │                   ├── dimens.xml
│   │                   ├── strings.xml
│   │                   └── styles.xml
│   ├── build.gradle
│   ├── gradle/
│   │   └── wrapper/
│   │       ├── gradle-wrapper.jar
│   │       └── gradle-wrapper.properties
│   ├── gradle.properties
│   ├── gradlew
│   ├── gradlew.bat
│   └── settings.gradle
└── README.md

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitattributes
================================================
# Auto detect text files and perform LF normalization
* text=auto

# Custom for Visual Studio
*.cs     diff=csharp

# Standard to msysgit
*.doc	 diff=astextplain
*.DOC	 diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot  diff=astextplain
*.DOT  diff=astextplain
*.pdf  diff=astextplain
*.PDF	 diff=astextplain
*.rtf	 diff=astextplain
*.RTF	 diff=astextplain


================================================
FILE: .gitignore
================================================
# Built application files
*.apk
*.ap_

# Files for the Dalvik VM
*.dex

# Java class files
*.class

# Generated files
bin/
gen/
out/

# Gradle files
.gradle/
build/
.idea/

# Local configuration file (sdk path, etc)
local.properties

# Proguard folder generated by Eclipse
proguard/

# Log Files
*.log

# Android Studio Navigation editor temp files
.navigation/

# Android Studio captures folder
captures/

# Intellij
*.iml

# Keystore files
*.jks

# =========================
# Operating System Files
# =========================

# OSX
# =========================

.DS_Store
.AppleDouble
.LSOverride

# Thumbnails
._*

# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

# Windows
# =========================

# Windows image file caches
Thumbs.db
ehthumbs.db

# Folder config file
Desktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Windows Installer files
*.cab
*.msi
*.msm
*.msp

# Windows shortcuts
*.lnk


================================================
FILE: DesignResCollection_MVC/README.md
================================================
## Model-View-Controller 结构  
经典MVC模式。  
LeanCloud作为后端,网络框架+图片框架,一起组成了一个普通App最基础的部分。可以参考本项目框架实现自己各种idea~    
最好自己去申请个LeanCloud或者Bmob的账号应用,两个平台的Restful-API由于是一毛一样的,所以可以随意切换~  


## 使用框架
 * 使用LeanCloud的Restful-API接口作为后端服务。
 * 网络框架部分使用Retrofit2.0
 * 图片框架部分使用Glide。
 * 响应式编程RxJava + RxBinding



================================================
FILE: DesignResCollection_MVC/app/build.gradle
================================================
apply plugin: 'com.android.application'

android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion

    defaultConfig {
        applicationId "com.boredream.designrescollection"

        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion

        versionCode 70
        versionName "0.7.0"
    }

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.cfg'
        }
    }

    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
    }

    lintOptions {
        abortOnError false
    }

    android.applicationVariants.all { variant ->
        renameAPK(variant, defaultConfig, "release")
    }
}

def renameAPK(variant, defaultConfig, buildType) {
    variant.outputs.each { output ->
        def applicationName = 'DesignResCollection'
        def formattedDate = new Date().format('yyyyMMdd')
        def file = output.packageApplication.outputFile
        def fileName = applicationName + "_v" + defaultConfig.versionName + "_" + formattedDate + "_" + buildType + ".apk"
        output.packageApplication.outputFile = new File(file.parent, fileName)
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile project(path: ':bdcodehelper')
}


================================================
FILE: DesignResCollection_MVC/app/proguard.cfg
================================================
######################## 固定部分 ########################

#1.基本指令区
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers
-dontpreverify
-verbose
-ignorewarning
-printmapping proguardMapping.txt
-optimizations !code/simplification/cast,!field/*,!class/merging/*
-keepattributes *Annotation*,InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable

#2.默认保留区
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class * extends android.view.View
-keep public class com.android.vending.licensing.ILicensingService
-keep class android.support.** {*;}

-keepclasseswithmembernames class * {
    native <methods>;
}
-keepclassmembers class * extends android.app.Activity{
    public void *(android.view.View);
}
-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}
-keep public class * extends android.view.View{
    *** get*();
    void set*(***);
    public <init>(android.content.Context);
    public <init>(android.content.Context, android.util.AttributeSet);
    public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet);
    public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keep class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator *;
}
-keepclassmembers class * implements java.io.Serializable {
    static final long serialVersionUID;
    private static final java.io.ObjectStreamField[] serialPersistentFields;
    private void writeObject(java.io.ObjectOutputStream);
    private void readObject(java.io.ObjectInputStream);
    java.lang.Object writeReplace();
    java.lang.Object readResolve();
}
-keep class **.R$* {
 *;
}
-keepclassmembers class * {
    void *(**On*Event);
}

#3.webview
-keepclassmembers class fqcn.of.javascript.interface.for.webview {
   public *;
}
-keepclassmembers class * extends android.webkit.webViewClient {
    public void *(android.webkit.WebView, java.lang.String, android.graphics.Bitmap);
    public boolean *(android.webkit.WebView, java.lang.String);
}
-keepclassmembers class * extends android.webkit.webViewClient {
    public void *(android.webkit.webView, jav.lang.String);
}

######################## 非固定部分 ########################


================================================
FILE: DesignResCollection_MVC/app/src/androidTest/java/com/boredream/designrescollection/ApplicationTest.java
================================================
package com.boredream.designrescollection;

import android.app.Application;
import android.test.ApplicationTestCase;

/**
 * <a href="http://d.android.com/tools/testing/testing_android.html">Testing Fundamentals</a>
 */
public class ApplicationTest extends ApplicationTestCase<Application> {
    public ApplicationTest() {
        super(Application.class);
    }

}

================================================
FILE: DesignResCollection_MVC/app/src/main/AndroidManifest.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.boredream.designrescollection">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.READ_LOGS" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

    <application
        android:name=".base.BaseApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".activity.MainActivity"
            android:launchMode="singleTask">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".activity.RegisterStep1Activity" />
        <activity android:name=".activity.RegisterStep2Activity" />
        <activity android:name=".activity.LoginActivity" />
        <activity android:name=".activity.SettingActivity" />
        <activity android:name=".activity.AboutActivity" />
        <activity android:name=".activity.UserInfoEditActivity" />
        <activity android:name=".activity.UsernameModifyActivity" />
        <activity android:name=".activity.FeedBackActivity" />

    </application>

</manifest>

================================================
FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/activity/AboutActivity.java
================================================
package com.boredream.designrescollection.activity;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.method.LinkMovementMethod;
import android.view.View;
import android.widget.TextView;

import com.boredream.bdcodehelper.utils.AppUtils;
import com.boredream.bdcodehelper.utils.StringUtils;
import com.boredream.designrescollection.R;
import com.boredream.designrescollection.base.BaseActivity;

public class AboutActivity extends BaseActivity {

    private TextView tv_version;
    private TextView tv_about;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_about);
        initView();
    }

    private void initView() {
        initBackTitle("关于我");

        tv_version = (TextView) findViewById(R.id.tv_version);
        tv_about = (TextView) findViewById(R.id.tv_about);

        tv_version.setText("Version " + AppUtils.getAppVersionName(this));

        SpannableString ss = getAboutString();
        tv_about.setMovementMethod(LinkMovementMethod.getInstance());
        tv_about.setText(ss);
    }

    private SpannableString getAboutString() {
        final String githubLink = getString(R.string.github);
        String format = String.format(getString(R.string.about), githubLink);
        SpannableString ss = new SpannableString(format);
        // 网址部分可点击,跳转到网页
        StringUtils.PrimaryClickableSpan span = new StringUtils.PrimaryClickableSpan(this) {
            @Override
            public void onClick(View widget) {
                Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(githubLink));
                startActivity(intent);
            }
        };
        int start = format.indexOf(githubLink);
        ss.setSpan(span, start, start + githubLink.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        return ss;
    }
}


================================================
FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/activity/FeedBackActivity.java
================================================
package com.boredream.designrescollection.activity;


import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

import com.boredream.bdcodehelper.net.ObservableDecorator;
import com.boredream.designrescollection.R;
import com.boredream.designrescollection.base.BaseActivity;
import com.boredream.designrescollection.base.BaseEntity;
import com.boredream.designrescollection.entity.FeedBack;
import com.boredream.designrescollection.net.HttpRequest;
import com.boredream.designrescollection.net.SimpleSubscriber;

import rx.Observable;

public class FeedBackActivity extends BaseActivity {

    private EditText et_content;
    private EditText et_email;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_feed_back);

        initView();
    }

    private void initView() {
        initBackTitle("意见反馈")
                .setRightText("提交")
                .setRightOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        submit();
                    }
                });

        et_content = (EditText) findViewById(R.id.et_content);
        et_email = (EditText) findViewById(R.id.et_email);

    }

    private void submit() {
        // 开始验证输入内容
        String content = et_content.getText().toString().trim();
        if (TextUtils.isEmpty(content)) {
            Toast.makeText(this, "反馈内容不能为空", Toast.LENGTH_SHORT).show();
            return;
        }

        String email = et_email.getText().toString().trim();
        if (TextUtils.isEmpty(email)) {
            Toast.makeText(this, "请输入邮箱地址,方便我们对您的意见进行及时回复", Toast.LENGTH_SHORT).show();
            return;
        }

        // 使用自定义对象存至云平台,作为简易版的反馈意见收集
        FeedBack fb = new FeedBack();
        fb.setContent(content);
        fb.setEmail(email);

        showProgressDialog();
        Observable<BaseEntity> observable = HttpRequest.getApiService().addFeedBack(fb);
        ObservableDecorator.decorate(observable).subscribe(
                new SimpleSubscriber<BaseEntity>(this) {
                    @Override
                    public void onNext(BaseEntity entity) {
                        dismissProgressDialog();
                        showToast("反馈成功");
                        finish();
                    }

                    @Override
                    public void onError(Throwable throwable) {
                        super.onError(throwable);
                        dismissProgressDialog();
                    }
                });
    }
}

================================================
FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/activity/LoginActivity.java
================================================
package com.boredream.designrescollection.activity;

import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.Toast;

import com.boredream.bdcodehelper.net.ObservableDecorator;
import com.boredream.designrescollection.R;
import com.boredream.designrescollection.base.BaseActivity;
import com.boredream.designrescollection.entity.User;
import com.boredream.designrescollection.net.HttpRequest;
import com.boredream.designrescollection.net.SimpleSubscriber;

import rx.Observable;

public class LoginActivity extends BaseActivity implements View.OnClickListener {

    private EditText et_username;
    private EditText et_password;
    private Button btn_login;
    private LinearLayout ll_regist;

    /**
     * 是否为验证登录,true-登录成功后,直接finish返回到来源页 false-登录成功后跳转到主页
     */
    private boolean checkLogin;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        initExtras();
        initView();
    }

    private void initExtras() {
        checkLogin = getIntent().getBooleanExtra("checkLogin", false);
    }

    private void initView() {
        initBackTitle("登录");

        et_username = (EditText) findViewById(R.id.et_username);
        et_password = (EditText) findViewById(R.id.et_password);
        btn_login = (Button) findViewById(R.id.btn_login);
        ll_regist = (LinearLayout) findViewById(R.id.ll_regist);

        btn_login.setOnClickListener(this);
        ll_regist.setOnClickListener(this);
    }

    private void login() {
        // validate
        String username = et_username.getText().toString().trim();
        if (TextUtils.isEmpty(username)) {
            Toast.makeText(this, "请输入手机号", Toast.LENGTH_SHORT).show();
            return;
        }

        String password = et_password.getText().toString().trim();
        if (TextUtils.isEmpty(password)) {
            Toast.makeText(this, "请输入密码", Toast.LENGTH_SHORT).show();
            return;
        }

        showProgressDialog();
        Observable<User> observable = HttpRequest.login(username, password);
        ObservableDecorator.decorate(observable)
                .subscribe(new SimpleSubscriber<User>(this) {
                    @Override
                    public void onNext(User user) {
                        dismissProgressDialog();

                        if (checkLogin) {
                            // 是验证登录,登录成功后,直接finish返回到来源页
                            finish();
                        } else {
                            // 不是验证登录,登录成功后跳转到主页
                            intent2Activity(MainActivity.class);
                        }
                    }

                    @Override
                    public void onError(Throwable throwable) {
                        super.onError(throwable);
                        dismissProgressDialog();
                    }
                });
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_login:
                login();
                break;
            case R.id.ll_regist:
                intent2Activity(RegisterStep1Activity.class);
                break;
        }
    }
}

================================================
FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/activity/MainActivity.java
================================================
package com.boredream.designrescollection.activity;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.widget.RadioButton;
import android.widget.RadioGroup;

import com.boredream.bdcodehelper.fragment.FragmentController;
import com.boredream.designrescollection.R;
import com.boredream.designrescollection.base.BaseActivity;
import com.boredream.designrescollection.fragment.HomeFragment;
import com.boredream.designrescollection.fragment.UserFragment;
import com.boredream.designrescollection.utils.UpdateUtils;

import java.util.ArrayList;


public class MainActivity extends BaseActivity implements RadioGroup.OnCheckedChangeListener {

    private RadioGroup rg_bottom_tab;
    private RadioButton rb1;
    private FragmentController controller;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        initView();
        initData();
    }

    private void initView() {
        setCouldDoubleBackExit(true);

        rg_bottom_tab = (RadioGroup) findViewById(R.id.rg_bottom_tab);
        rb1 = (RadioButton) findViewById(R.id.rb1);

        rg_bottom_tab.setOnCheckedChangeListener(this);
    }

    private void initData() {
        ArrayList<Fragment> fragments = new ArrayList<>();
        fragments.add(new HomeFragment());
        fragments.add(new UserFragment());

        controller = new FragmentController(this, R.id.fl_content, fragments);

        // 默认Fragment
        rb1.setChecked(true);
        controller.showFragment(0);

        UpdateUtils.checkUpdate(this, false);
    }

    @Override
    public void onCheckedChanged(RadioGroup radioGroup, int checkedId) {
        switch (checkedId) {
            case R.id.rb1:
                controller.showFragment(0);
                break;
            case R.id.rb2:
                controller.showFragment(1);
                break;
        }
    }

}


================================================
FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/activity/RegisterStep1Activity.java
================================================
package com.boredream.designrescollection.activity;

import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.boredream.designrescollection.R;
import com.boredream.designrescollection.base.BaseActivity;

/**
 * 注册页面步骤一
 */
public class RegisterStep1Activity extends BaseActivity implements View.OnClickListener {

    private EditText et_username;
    private EditText et_password;
    private Button btn_next;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register_step1);

        initView();
    }

    private void initView() {
        initBackTitle("注册");

        et_username = (EditText) findViewById(R.id.et_username);
        et_password = (EditText) findViewById(R.id.et_password);
        btn_next = (Button) findViewById(R.id.btn_next);

        btn_next.setOnClickListener(this);
    }

    private void next() {
        // validate
        final String username = et_username.getText().toString().trim();
        if (TextUtils.isEmpty(username)) {
            Toast.makeText(this, "请输入用户名", Toast.LENGTH_SHORT).show();
            return;
        }

        final String password = et_password.getText().toString().trim();
        if (TextUtils.isEmpty(password) || password.length() < 6) {
            Toast.makeText(this, "请设置登录密码,不少于6位", Toast.LENGTH_SHORT).show();
            return;
        }

        // FIXME: 短信有限,所以直接模拟验证码发送成功,使用不验证的注册
        // requestSmsCode(phone, password);
        toValidateStep2(username, password);
    }

    // 短信验证码发送成功后,跳转到短信验证页,同时传递所需数据
    private void  toValidateStep2(String phone, String password) {
        Intent intent = new Intent(RegisterStep1Activity.this, RegisterStep2Activity.class);
        intent.putExtra("phone", phone);
        intent.putExtra("password", password);
        startActivity(intent);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_next:
                next();
                break;
        }
    }
}


================================================
FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/activity/RegisterStep2Activity.java
================================================
package com.boredream.designrescollection.activity;


import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.support.v7.app.AlertDialog;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.boredream.bdcodehelper.net.ObservableDecorator;
import com.boredream.bdcodehelper.utils.DateUtils;
import com.boredream.designrescollection.R;
import com.boredream.designrescollection.base.BaseActivity;
import com.boredream.designrescollection.entity.User;
import com.boredream.designrescollection.net.HttpRequest;
import com.boredream.designrescollection.net.SimpleSubscriber;
import com.boredream.designrescollection.utils.UserInfoKeeper;

import rx.Observable;

/**
 * 注册页面步骤二
 */
public class RegisterStep2Activity extends BaseActivity implements View.OnClickListener {

    // 总倒计时60秒
    private static final long TOTCAL_TIME = 60 * DateUtils.ONE_SECOND_MILLIONS;
    // 每次减少1秒
    private static final long COUNT_DOWN_INTERVAL = DateUtils.ONE_SECOND_MILLIONS;

    private EditText et_verification_code;
    private Button btn_code_info;
    private Button btn_next;

    private String phone;
    private String password;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register_step2);

        initExtras();
        initView();
        initData();
    }

    private void initExtras() {
        Intent intent = getIntent();
        phone = intent.getStringExtra("phone");
        password = intent.getStringExtra("password");
    }

    private void initView() {
        initBackTitle("手机号验证");

        et_verification_code = (EditText) findViewById(R.id.et_verification_code);
        btn_code_info = (Button) findViewById(R.id.btn_code_info);
        btn_next = (Button) findViewById(R.id.btn_next);

        btn_code_info.setOnClickListener(this);
        btn_next.setOnClickListener(this);
    }

    private void initData() {
        startCountDown();
    }

    /**
     * 开始倒计时
     */
    private void startCountDown() {
        showToast("短信验证码发送成功");

        btn_code_info.setText("60秒");
        btn_code_info.setEnabled(false);

        // 倒计时开始,共60秒,每次减少1秒
        CountDownTimer timer = new CountDownTimer(TOTCAL_TIME, COUNT_DOWN_INTERVAL) {
            @Override
            public void onTick(long l) {
                // 重新获取(60)
                String restTime = (int) (l / COUNT_DOWN_INTERVAL) + "秒";
                btn_code_info.setText(restTime);
            }

            @Override
            public void onFinish() {
                // 倒计时结束,重置按钮
                btn_code_info.setText("重新获取");
                btn_code_info.setEnabled(true);
            }
        };
        timer.start();
    }

    /**
     * 根据类型提交注册或重置密码接口
     */
    private void submit() {
        // validate
        String code = et_verification_code.getText().toString().trim();
        if (TextUtils.isEmpty(code)) {
            Toast.makeText(this, "请输入验证码", Toast.LENGTH_SHORT).show();
            return;
        }

        register(code);
    }

    /**
     * 注册
     */
    private void register(String code) {
        User user = new User();
        user.setMobilePhoneNumber(phone);
        user.setUsername(phone);
        user.setPassword(password);
        user.setSmsCode(code);
        Observable<User> observable = HttpRequest.getApiService().register(user);
        showProgressDialog();
        ObservableDecorator.decorate(observable)
                .subscribe(new SimpleSubscriber<User>(this) {
                    @Override
                    public void onNext(User user) {
                        // include token
                        dismissProgressDialog();
                        UserInfoKeeper.setCurrentUser(user);
                        // 注册成功,显示成功提示框
                        showRegistSuccessDialog();
                    }

                    @Override
                    public void onError(Throwable throwable) {
                        super.onError(throwable);
                        dismissProgressDialog();
                    }
                });

    }

    /**
     * 注册成功提示框,提醒用户完善资料
     */
    private void showRegistSuccessDialog() {
        new AlertDialog.Builder(this)
                .setMessage("注册成功,你可以在个人详情中修改或完善用户信息。")
                .setPositiveButton("确定", null)
                .setOnDismissListener(new DialogInterface.OnDismissListener() {
                    @Override
                    public void onDismiss(DialogInterface dialog) {
                        // 确定或者返回键关闭对话框都走此
                        intent2Activity(MainActivity.class);
                    }
                })
                .setCancelable(false) // cancelable设为false,防止用户点击返回键关闭对话框停留在当前页面
                .show();
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_code_info:
                // FIXME: 短信有限,所以直接模拟验证码发送成功,使用不验证的注册
                // resendSmsCode();
                startCountDown();
                break;
            case R.id.btn_next:
                submit();
                break;
        }
    }

}


================================================
FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/activity/SettingActivity.java
================================================
package com.boredream.designrescollection.activity;

import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;

import com.boredream.bdcodehelper.adapter.SettingRecyclerAdapter;
import com.boredream.bdcodehelper.entity.SettingItem;
import com.boredream.bdcodehelper.utils.AppUtils;
import com.boredream.bdcodehelper.view.DividerItemDecoration;
import com.boredream.designrescollection.R;
import com.boredream.designrescollection.base.BaseActivity;
import com.boredream.designrescollection.utils.UpdateUtils;
import com.boredream.designrescollection.utils.UserInfoKeeper;

import java.util.ArrayList;
import java.util.List;

public class SettingActivity extends BaseActivity implements View.OnClickListener, AdapterView.OnItemClickListener {

    private RecyclerView rv_setting;
    private Button btn_logout;

    private SettingRecyclerAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_setting);
        initView();
        initData();
    }

    private void initView() {
        initBackTitle("设置");

        rv_setting = (RecyclerView) findViewById(R.id.rv_setting);
        btn_logout = (Button) findViewById(R.id.btn_logout);

        btn_logout.setOnClickListener(this);
    }

    private void initData() {
        // 使用列表显示多个选项条
        List<SettingItem> items = new ArrayList<>();

        items.add(new SettingItem(
                R.mipmap.ic_cached_grey600_24dp,
                "检查更新",
                AppUtils.getAppVersionName(this),
                R.mipmap.ic_chevron_right_grey600_24dp
        ));
        items.add(new SettingItem(
                R.mipmap.ic_announcement_grey600_24dp,
                "反馈",
                null,
                R.mipmap.ic_chevron_right_grey600_24dp
        ));

        adapter = new SettingRecyclerAdapter(items, this);
        rv_setting.setAdapter(adapter);

        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(
                this, LinearLayoutManager.VERTICAL, false);
        rv_setting.setLayoutManager(linearLayoutManager);
        // 每个item之间的分割线
        rv_setting.addItemDecoration(new DividerItemDecoration(this));
    }

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        switch (position) {
            case 0:
                showProgressDialog();
                // 强制检查更新,并添加额外回调用于处理进度框
                UpdateUtils.checkUpdate(this, true);
                break;
            case 1:
                if(UserInfoKeeper.checkLogin(this)) {
                    // 一般意见反馈不需要登录,这里模拟下需登录场景的处理方法
                    intent2Activity(FeedBackActivity.class);
                }
                break;
        }
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_logout:
                // 登出,清理用户数据同时跳转到主页
                UserInfoKeeper.logout();
                intent2Activity(MainActivity.class);
                break;
        }
    }
}


================================================
FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/activity/UserInfoEditActivity.java
================================================
package com.boredream.designrescollection.activity;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.boredream.bdcodehelper.entity.FileUploadResponse;
import com.boredream.bdcodehelper.net.ObservableDecorator;
import com.boredream.bdcodehelper.utils.ImageUtils;
import com.boredream.designrescollection.R;
import com.boredream.designrescollection.base.BaseActivity;
import com.boredream.designrescollection.base.BaseEntity;
import com.boredream.designrescollection.entity.User;
import com.boredream.designrescollection.net.GlideHelper;
import com.boredream.designrescollection.net.HttpRequest;
import com.boredream.designrescollection.net.SimpleSubscriber;
import com.boredream.designrescollection.utils.UserInfoKeeper;

import java.util.HashMap;
import java.util.Map;

import rx.Observable;

public class UserInfoEditActivity extends BaseActivity implements View.OnClickListener {

    private ImageView iv_avatar;
    private LinearLayout ll_avatar;
    private TextView tv_username;
    private LinearLayout ll_username;

    private User currentUser;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_user_info_edit);

        initView();
    }

    @Override
    protected void onStart() {
        super.onStart();
        // 如果跳转到二级页面修改了用户信息,则再次返回到该页面时显示最新的用户数据
        initData();
    }

    private void initData() {
        currentUser = UserInfoKeeper.getCurrentUser();
        showUserAvatar();
        tv_username.setText(currentUser.getUsername());
    }

    private void showUserAvatar() {
        GlideHelper.showAvatar(this, currentUser.getAvatar(), iv_avatar);
    }

    private void initView() {
        initBackTitle("修改个人资料");

        iv_avatar = (ImageView) findViewById(R.id.iv_avatar);
        ll_avatar = (LinearLayout) findViewById(R.id.ll_avatar);
        tv_username = (TextView) findViewById(R.id.tv_username);
        ll_username = (LinearLayout) findViewById(R.id.ll_username);

        ll_avatar.setOnClickListener(this);
        ll_username.setOnClickListener(this);
    }

    /**
     * 上传用户头像图片
     *
     * @param uri 头像图片uri
     */
    private void uploadUserAvatarImage(Uri uri) {
        showProgressDialog();

        // 第一步,上传头像文件到服务器
        HttpRequest.fileUpload(this, uri,
                iv_avatar.getWidth(), iv_avatar.getHeight(),
                new SimpleSubscriber<FileUploadResponse>(this) {
                    @Override
                    public void onNext(FileUploadResponse fileUploadResponse) {
                        // 第二步,将上传图片返回的url地址更新至用户对象中
                        uploadUserAvatarImage(HttpRequest.FILE_HOST + fileUploadResponse.getUrl());
                    }

                    @Override
                    public void onError(Throwable throwable) {
                        super.onError(throwable);
                        dismissProgressDialog();
                    }
                });
    }

    /**
     * 更新用户头像
     *
     * @param avatarUrl 头像图片地址
     */
    private void uploadUserAvatarImage(final String avatarUrl) {
        Map<String, Object> updateMap = new HashMap<>();
        updateMap.put("avatar", avatarUrl);

        Observable<BaseEntity> observable = HttpRequest.getApiService().updateUserById(
                currentUser.getObjectId(), updateMap);
        ObservableDecorator.decorate(observable)
                .subscribe(new SimpleSubscriber<BaseEntity>(this) {
                    @Override
                    public void onNext(BaseEntity entity) {
                        dismissProgressDialog();

                        // 成功后更新当前用户的头像数据
                        currentUser.setAvatar(avatarUrl);
                        UserInfoKeeper.setCurrentUser(currentUser);
                        showUserAvatar();

                        showToast("头像修改成功");
                    }

                    @Override
                    public void onError(Throwable throwable) {
                        super.onError(throwable);
                        dismissProgressDialog();
                    }
                });
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.ll_avatar:
                ImageUtils.showImagePickDialog(this);
                break;
            case R.id.ll_username:
                intent2Activity(UsernameModifyActivity.class);
                break;
        }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (resultCode != RESULT_OK) {
            return;
        }

        Uri uri;
        switch (requestCode) {
            case ImageUtils.REQUEST_CODE_FROM_ALBUM:
                // 从相册选择
                uri = data.getData();
                // 选择后裁剪
                ImageUtils.cropImage(this, uri);
                break;
            case ImageUtils.REQUEST_CODE_FROM_CAMERA:
                // 相机拍照
                uri = ImageUtils.imageUriFromCamera;
                // 拍照后裁剪
                ImageUtils.cropImage(this, uri);
                break;
            case ImageUtils.REQUEST_CODE_CROP_IMAGE:
                // 裁剪完成后上传图片
                uploadUserAvatarImage(ImageUtils.cropImageUri);
                break;
        }
    }

}


================================================
FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/activity/UsernameModifyActivity.java
================================================
package com.boredream.designrescollection.activity;

import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

import com.boredream.bdcodehelper.net.ObservableDecorator;
import com.boredream.designrescollection.R;
import com.boredream.designrescollection.base.BaseActivity;
import com.boredream.designrescollection.base.BaseEntity;
import com.boredream.designrescollection.entity.User;
import com.boredream.designrescollection.net.HttpRequest;
import com.boredream.designrescollection.net.SimpleSubscriber;
import com.boredream.designrescollection.utils.UserInfoKeeper;

import java.util.HashMap;
import java.util.Map;

import rx.Observable;

/**
 * 修改用户名输入框页面
 */
public class UsernameModifyActivity extends BaseActivity {

    private EditText et;
    private User currentUser;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_input);

        initView();
        initData();
    }

    private void initView() {
        initBackTitle("昵称修改")
                .setRightText("保存")
                .setRightOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        submit();
                    }
                });
        et = (EditText) findViewById(R.id.et);
    }

    private void initData() {
        currentUser = UserInfoKeeper.getCurrentUser();
        et.setText(currentUser.getUsername());
    }

    private void submit() {
        // validate
        final String username = et.getText().toString().trim();
        if (TextUtils.isEmpty(username)) {
            Toast.makeText(this, "昵称不能为空", Toast.LENGTH_SHORT).show();
            return;
        }

        // 修改用户的username
        Map<String, Object> updateMap = new HashMap<>();
        updateMap.put("username", username);

        showProgressDialog();
        Observable<BaseEntity> observable = HttpRequest.getApiService()
                .updateUserById(currentUser.getObjectId(), updateMap);
        ObservableDecorator.decorate(observable)
                .subscribe(new SimpleSubscriber<BaseEntity>(this) {
                    @Override
                    public void onNext(BaseEntity entity) {
                        dismissProgressDialog();

                        // 修改成功后更新当前用户的昵称
                        currentUser.setUsername(username);
                        UserInfoKeeper.setCurrentUser(currentUser);

                        showToast("昵称修改成功");
                        finish();
                    }

                    @Override
                    public void onError(Throwable throwable) {
                        super.onError(throwable);

                        dismissProgressDialog();
                    }
                });
    }
}


================================================
FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/adapter/DesignResAdapter.java
================================================
package com.boredream.designrescollection.adapter;

import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.boredream.bdcodehelper.activity.WebViewActivity;
import com.boredream.designrescollection.R;
import com.boredream.designrescollection.entity.DesignRes;
import com.boredream.designrescollection.net.GlideHelper;

import java.util.ArrayList;

public class DesignResAdapter extends RecyclerView.Adapter<DesignResAdapter.ViewHolder> {

    private Context context;
    private ArrayList<DesignRes> datas;

    public DesignResAdapter(Context context, ArrayList<DesignRes> datas) {
        this.context = context;
        this.datas = datas;
    }

    @Override
    public int getItemCount() {
        return datas.size();
    }

    public static class ViewHolder extends RecyclerView.ViewHolder {
        public ImageView iv_image;
        public TextView tv_name;

        public ViewHolder(View rootView) {
            super(rootView);

            this.iv_image = (ImageView) rootView.findViewById(R.id.iv_image);
            this.tv_name = (TextView) rootView.findViewById(R.id.tv_name);
        }

    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(context).inflate(R.layout.item_design_res, parent, false);
        return new ViewHolder(v);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        final DesignRes data = datas.get(position);

        GlideHelper.showImage(context, data.getImgUrl(), holder.iv_image);
        String str = String.format("[%s] %s", data.getSrcTag(), data.getName());
        holder.tv_name.setText(str);

        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(context, WebViewActivity.class);
                intent.putExtra(WebViewActivity.EXTRA_TITLE, data.getName());
                intent.putExtra(WebViewActivity.EXTRA_URL, data.getSrcLink());
                context.startActivity(intent);
            }
        });
    }


}


================================================
FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/adapter/MoreRecyclerAdapter.java
================================================
package com.boredream.designrescollection.adapter;

import android.content.Intent;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

import com.boredream.bdcodehelper.adapter.SettingRecyclerAdapter;
import com.boredream.bdcodehelper.entity.SettingItem;
import com.boredream.designrescollection.R;
import com.boredream.designrescollection.activity.LoginActivity;
import com.boredream.designrescollection.entity.User;
import com.boredream.designrescollection.net.GlideHelper;

import java.util.List;

/**
 * 更多选项列表适配器
 * <p>
 * 第一个位置为HEADER类型,对应用户信息<br/>
 * 其他位置为LIST类型,对应选项item
 */
public class MoreRecyclerAdapter extends SettingRecyclerAdapter {

    private static final int ITEM_VIEW_TYPE_HEADER = 0;

    private User user;

    public MoreRecyclerAdapter(List<SettingItem> datas, OnItemClickListener listener) {
        super(datas, listener);
    }

    @Override
    public int getItemCount() {
        // header + 1
        return datas.size() + 1;
    }

    @Override
    public int getItemViewType(int position) {
        return position == 0 ? ITEM_VIEW_TYPE_HEADER : super.getItemViewType(position);
    }

    public void setUser(User user) {
        this.user = user;
    }

    public static class ViewHolderUserHeader extends RecyclerView.ViewHolder {

        public View include_more_header;
        public ImageView iv_avatar;
        public TextView tv_name;
        // not login
        public View include_more_no_header;
        public Button btn_login;

        public ViewHolderUserHeader(final View itemView) {
            super(itemView);

            include_more_header = itemView.findViewById(R.id.include_more_header);
            iv_avatar = (ImageView) itemView.findViewById(R.id.iv_avatar);
            tv_name = (TextView) itemView.findViewById(R.id.tv_name);
            include_more_no_header = itemView.findViewById(R.id.include_more_no_header);
            btn_login = (Button) itemView.findViewById(R.id.btn_login);
        }
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        if (viewType == ITEM_VIEW_TYPE_HEADER) {
            View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_more_header, parent, false);
            return new ViewHolderUserHeader(v);
        } else {
            return super.onCreateViewHolder(parent, viewType);
        }
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
        int itemViewType = getItemViewType(position);
        if (itemViewType == ITEM_VIEW_TYPE_HEADER) {
            // header
            ViewHolderUserHeader viewHolderHeader = (ViewHolderUserHeader) holder;
            if (user != null) {
                // 如果已登录,用户数据非空,则显示用户信息
                viewHolderHeader.include_more_header.setVisibility(View.VISIBLE);
                viewHolderHeader.include_more_no_header.setVisibility(View.GONE);

                GlideHelper.showAvatar(holder.itemView.getContext(), user.getAvatar(), viewHolderHeader.iv_avatar);
                viewHolderHeader.tv_name.setText(user.getUsername());

                viewHolderHeader.itemView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        if (mOnItemClickListener != null) {
                            // header使用特殊的position -1
                            mOnItemClickListener.onItemClick(null, view, -1, -1);
                        }
                    }
                });
            } else {
                // 未登录,提供登录按钮,点击进入登录页
                viewHolderHeader.include_more_header.setVisibility(View.GONE);
                viewHolderHeader.include_more_no_header.setVisibility(View.VISIBLE);

                viewHolderHeader.btn_login.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        Intent intent = new Intent(view.getContext(), LoginActivity.class);
                        view.getContext().startActivity(intent);
                    }
                });
            }
        } else {
            // setting item
            // 第一个位置多了个HEADER,所以position差1
            super.onBindViewHolder(holder, position - 1);
        }
    }

}


================================================
FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/base/BaseActivity.java
================================================
package com.boredream.designrescollection.base;


import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;

import com.boredream.bdcodehelper.base.BoreBaseActivity;
import com.boredream.designrescollection.activity.MainActivity;
import com.boredream.designrescollection.constants.CommonConstants;

import java.util.concurrent.TimeUnit;

import rx.Observable;
import rx.functions.Action1;

public class BaseActivity extends BoreBaseActivity {

    public BaseApplication application;
    public SharedPreferences sp;

    private boolean couldDoubleBackExit;
    private boolean doubleBackExitPressedOnce;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // 如果是退出应用flag,则直接关闭当前页面,不加载UI
        boolean exit = getIntent().getBooleanExtra("exit", false);
        if (exit) {
            finish();
            return;
        }

        application = (BaseApplication) getApplication();
        sp = getSharedPreferences(CommonConstants.SP_NAME, MODE_PRIVATE);
    }

    /**
     * 设置是否可以双击返回退出,需要有该功能的页面set true即可
     *
     * @param couldDoubleBackExit true-开启双击退出
     */
    public void setCouldDoubleBackExit(boolean couldDoubleBackExit) {
        this.couldDoubleBackExit = couldDoubleBackExit;
    }

    @Override
    public void onBackPressed() {
        if (!couldDoubleBackExit) {
            // 非双击退出状态,使用原back逻辑
            super.onBackPressed();
            return;
        }

        // 双击返回键关闭程序
        // 如果两秒重置时间内再次点击返回,则退出程序
        if (doubleBackExitPressedOnce) {
            exit();
            return;
        }

        doubleBackExitPressedOnce = true;
        showToast("再按一次返回键关闭程序");
        Observable.just(null)
                .delay(2, TimeUnit.SECONDS)
                .subscribe(new Action1<Object>() {
                    @Override
                    public void call(Object o) {
                        // 延迟两秒后重置标志位为false
                        doubleBackExitPressedOnce = false;
                    }
                });
    }

    /**
     * 退出程序
     */
    protected void exit() {
        // 退出程序方法有多种
        // 这里使用clear + new task的方式清空整个任务栈,只保留新打开的Main页面
        // 然后Main页面接收到退出的标志位exit=true,finish自己,这样就关闭了全部页面
        Intent intent = new Intent(this, MainActivity.class);
        intent.putExtra("exit", true);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
    }
}


================================================
FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/base/BaseApplication.java
================================================
package com.boredream.designrescollection.base;


import android.app.Application;

import com.boredream.designrescollection.net.HttpRequest;
import com.bumptech.glide.Glide;
import com.bumptech.glide.integration.okhttp.OkHttpUrlLoader;
import com.bumptech.glide.load.model.GlideUrl;
import com.squareup.okhttp.OkHttpClient;

import java.io.InputStream;

public class BaseApplication extends Application {

    private static BaseApplication instance;

    public static BaseApplication getInstance() {
        return instance;
    }

    @Override
    public void onCreate() {
        super.onCreate();

        instance = this;

        initGlide();
    }

    /**
     * 图片加载框架Glide,使用OkHttp处理网络请求
     */
    private void initGlide() {
        OkHttpClient okHttpClient = HttpRequest.getHttpClient();
        Glide.get(this).register(GlideUrl.class, InputStream.class,
                new OkHttpUrlLoader.Factory(okHttpClient));
    }
}


================================================
FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/base/BaseEntity.java
================================================
package com.boredream.designrescollection.base;


import com.boredream.bdcodehelper.base.BoreBaseEntity;

public class BaseEntity extends BoreBaseEntity {

    @Override
    public boolean equals(Object o) {
        if (o instanceof BaseEntity) {
            BaseEntity oEntity = (BaseEntity) o;
            return this.objectId.equals(oEntity.objectId);
        }
        return super.equals(o);
    }
}

================================================
FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/base/BaseFragment.java
================================================
package com.boredream.designrescollection.base;


import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.widget.Toast;

import com.boredream.bdcodehelper.utils.ToastUtils;

public abstract class BaseFragment extends Fragment {

    protected String TAG;
    protected BaseActivity activity;
    // progressDialog/sp/application 等使用activity.xx 调用

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        TAG = getClass().getSimpleName();

        activity = (BaseActivity) getActivity();
    }

    protected void intent2Activity(Class<? extends Activity> tarActivity) {
        Intent intent = new Intent(activity, tarActivity);
        startActivity(intent);
    }

    protected void showToast(String msg) {
        ToastUtils.showToast(activity, msg, Toast.LENGTH_SHORT);
    }

    protected void showLog(String msg) {
        Log.i(TAG, msg);
    }

    protected void showProgressDialog() {
        activity.showProgressDialog();
    }

    protected void dismissProgressDialog() {
        activity.dismissProgressDialog();
    }
}


================================================
FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/constants/CommonConstants.java
================================================
package com.boredream.designrescollection.constants;

/**
 * 通用常量
 */
public class CommonConstants {

    private CommonConstants() {
    }

    /**
     * SharedPreferences 名称
     */
    public static final String SP_NAME = "config";

    /**
     * 每页加载的数量
     */
    public static final int COUNT_OF_PAGE = 20;

}


================================================
FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/entity/Comment.java
================================================
package com.boredream.designrescollection.entity;


import com.boredream.designrescollection.base.BaseEntity;

public class Comment extends BaseEntity {
    /**
     * 所属资源
     */
    private DesignRes designRes;

    /**
     * 发送用户, Pointer or User
     */
    private User user;

    /**
     * 评论内容
     */
    private String content;

    public DesignRes getDesignRes() {
        return designRes;
    }

    public void setDesignRes(DesignRes designRes) {
        this.designRes = designRes;
    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }
}


================================================
FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/entity/DesignRes.java
================================================
package com.boredream.designrescollection.entity;


import com.boredream.designrescollection.base.BaseEntity;

/**
 * 设计资源
 */
public class DesignRes extends BaseEntity {

    private String desc;
    private String srcTag;
    private String name;
    private String imgUrl;
    private String srcLink;

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public String getSrcTag() {
        return srcTag;
    }

    public void setSrcTag(String srcTag) {
        this.srcTag = srcTag;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getImgUrl() {
        return imgUrl;
    }

    public void setImgUrl(String imgUrl) {
        this.imgUrl = imgUrl;
    }

    public String getSrcLink() {
        return srcLink;
    }

    public void setSrcLink(String srcLink) {
        this.srcLink = srcLink;
    }
}


================================================
FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/entity/FeedBack.java
================================================
package com.boredream.designrescollection.entity;


import com.boredream.designrescollection.base.BaseEntity;

public class FeedBack extends BaseEntity {

    private String content;
    private String email;

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

}

================================================
FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/entity/User.java
================================================
package com.boredream.designrescollection.entity;


import com.boredream.designrescollection.base.BaseEntity;

public class User extends BaseEntity {

    private String sessionToken;

    private String nickname;

    private String username;

    /**
     * 验证手机号
     */
    private String mobilePhoneNumber;

    /**
     * 密码
     */
    private String password;

    /**
     * 手机号验证码,发送短信验证时请求使用
     */
    private String smsCode;

    /**
     * 头像图片地址
     */
    private String avatar;

    private String company;

    public String getSessionToken() {
        return sessionToken;
    }

    public void setSessionToken(String sessionToken) {
        this.sessionToken = sessionToken;
    }

    public String getCompany() {
        return company;
    }

    public void setCompany(String company) {
        this.company = company;
    }

    public String getAvatar() {
        return avatar;
    }

    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }

    public String getSmsCode() {
        return smsCode;
    }

    public void setSmsCode(String smsCode) {
        this.smsCode = smsCode;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getMobilePhoneNumber() {
        return mobilePhoneNumber;
    }

    public void setMobilePhoneNumber(String mobilePhoneNumber) {
        this.mobilePhoneNumber = mobilePhoneNumber;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }
}


================================================
FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/fragment/HomeFragment.java
================================================
package com.boredream.designrescollection.fragment;


import android.os.Bundle;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.boredream.bdcodehelper.adapter.LoadMoreAdapter;
import com.boredream.bdcodehelper.entity.ListResponse;
import com.boredream.bdcodehelper.net.ObservableDecorator;
import com.boredream.bdcodehelper.utils.DisplayUtils;
import com.boredream.bdcodehelper.utils.TitleBuilder;
import com.boredream.bdcodehelper.view.GridSpacingDecorator;
import com.boredream.designrescollection.R;
import com.boredream.designrescollection.adapter.DesignResAdapter;
import com.boredream.designrescollection.base.BaseFragment;
import com.boredream.designrescollection.constants.CommonConstants;
import com.boredream.designrescollection.entity.DesignRes;
import com.boredream.designrescollection.net.HttpRequest;
import com.boredream.designrescollection.net.SimpleSubscriber;

import java.util.ArrayList;

import rx.Observable;

public class HomeFragment extends BaseFragment {

    private View view;
    private SwipeRefreshLayout srl;
    private RecyclerView rv;

    private int curPage = 1;
    private ArrayList<DesignRes> datas = new ArrayList<>();
    private LoadMoreAdapter adapter;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        view = View.inflate(activity, R.layout.frag_home, null);
        initView();
        initData();
        return view;
    }

    private void initView() {
        new TitleBuilder(view).setTitleText(getString(R.string.tab1));

        srl = (SwipeRefreshLayout) view.findViewById(R.id.srl);
        srl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                loadData(1);
            }
        });

        rv = (RecyclerView) view.findViewById(R.id.rv);
        rv.addItemDecoration(new GridSpacingDecorator(DisplayUtils.dp2px(activity, 8)));
        GridLayoutManager gridLayoutManager = new GridLayoutManager(activity, 2);
        rv.setLayoutManager(gridLayoutManager);

        adapter = new LoadMoreAdapter(rv,
                new DesignResAdapter(activity, datas),
                new LoadMoreAdapter.OnLoadMoreListener() {
                    @Override
                    public void onLoadMore() {
                        loadData(curPage + 1);
                    }
                });
        rv.setAdapter(adapter);
    }

    private void initData() {
        showProgressDialog();
        loadData(1);
    }

    private void loadData(final int page) {
        Observable<ListResponse<DesignRes>> observable = HttpRequest.getDesignRes(page);
        ObservableDecorator.decorate(observable).subscribe(
                new SimpleSubscriber<ListResponse<DesignRes>>(activity) {
                    @Override
                    public void onNext(ListResponse<DesignRes> response) {
                        curPage = page;

                        srl.setRefreshing(false);
                        dismissProgressDialog();

                        if (page == 1) {
                            datas.clear();
                        }
                        setResponse(response);
                    }

                    @Override
                    public void onError(Throwable throwable) {
                        super.onError(throwable);

                        srl.setRefreshing(false);
                        dismissProgressDialog();
                    }
                });
    }

    private void setResponse(ListResponse<DesignRes> response) {
        datas.addAll(response.getResults());

        // 设置是否已加载完全部数据状态
        adapter.setStatus(response.getResults().size() == CommonConstants.COUNT_OF_PAGE
                ? LoadMoreAdapter.STATUS_HAVE_MORE : LoadMoreAdapter.STATUS_LOADED_ALL);
        adapter.notifyDataSetChanged();
    }
}


================================================
FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/fragment/UserFragment.java
================================================
package com.boredream.designrescollection.fragment;

import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;

import com.boredream.bdcodehelper.entity.SettingItem;
import com.boredream.bdcodehelper.utils.DisplayUtils;
import com.boredream.bdcodehelper.utils.TitleBuilder;
import com.boredream.bdcodehelper.view.DividerItemDecoration;
import com.boredream.bdcodehelper.view.EmptyItemDecoration;
import com.boredream.designrescollection.R;
import com.boredream.designrescollection.activity.AboutActivity;
import com.boredream.designrescollection.activity.SettingActivity;
import com.boredream.designrescollection.activity.UserInfoEditActivity;
import com.boredream.designrescollection.adapter.MoreRecyclerAdapter;
import com.boredream.designrescollection.base.BaseFragment;
import com.boredream.designrescollection.utils.UserInfoKeeper;

import java.util.ArrayList;
import java.util.List;

public class UserFragment extends BaseFragment implements AdapterView.OnItemClickListener {

    private RecyclerView rv_user;
    private MoreRecyclerAdapter adapter;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = View.inflate(activity, R.layout.frag_user, null);
        initView(view);
        initData();
        return view;
    }

    @Override
    public void onStart() {
        super.onStart();

        // 如果未登录进入本页面,然后跳转登录页面成功后返回,此时应该再次更新用户信息
        adapter.setUser(UserInfoKeeper.getCurrentUser());
        adapter.notifyDataSetChanged();
    }

    private void initView(View view) {
        new TitleBuilder(view).setTitleText("更多");

        rv_user = (RecyclerView) view.findViewById(R.id.rv_user);
    }

    private void initData() {
        // more items
        List<SettingItem> items = new ArrayList<>();
        items.add(new SettingItem(
                R.mipmap.ic_info_grey600_24dp,
                "关于",
                null,
                R.mipmap.ic_chevron_right_grey600_24dp
        ));
        items.add(new SettingItem(
                R.mipmap.ic_settings_grey600_24dp,
                "设置",
                null,
                R.mipmap.ic_chevron_right_grey600_24dp
        ));

        adapter = new MoreRecyclerAdapter(items, this);
        rv_user.setAdapter(adapter);

        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(
                activity, LinearLayoutManager.VERTICAL, false);
        rv_user.setLayoutManager(linearLayoutManager);
        // 每个item之间的分割线
        rv_user.addItemDecoration(new DividerItemDecoration(activity));
        // 每组item之间的分割间隔
        rv_user.addItemDecoration(new EmptyItemDecoration(
                new Integer[]{0, 1}, DisplayUtils.dp2px(activity, 16)));

    }

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        switch (position) {
            case -1:
                // 给特殊的用户信息header位置设为了position=-1的item click事件
                intent2Activity(UserInfoEditActivity.class);
                break;
            case 0:
                intent2Activity(AboutActivity.class);
                break;
            case 1:
                intent2Activity(SettingActivity.class);
                break;
        }
    }
}


================================================
FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/net/GlideHelper.java
================================================
package com.boredream.designrescollection.net;


import android.content.Context;
import android.widget.ImageView;

import com.boredream.bdcodehelper.net.GlideCircleTransform;
import com.boredream.designrescollection.R;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;

/**
 * Glide
 */
public class GlideHelper {

    public static void showAvatar(Context context, String avatar, ImageView iv) {
        Glide.with(context)
                .load(avatar)
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                .placeholder(R.mipmap.ic_account_circle_grey600_24dp)
                .error(R.mipmap.ic_account_circle_grey600_24dp)
                .transform(new GlideCircleTransform(context))
                .crossFade()
                .into(iv);
    }

    public static void showImage(Context context, String imageUrl, ImageView iv) {
        Glide.with(context)
                .load(imageUrl)
                .asBitmap()
                .animate(android.R.anim.fade_in)
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                .into(iv);
    }
}


================================================
FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/net/HttpRequest.java
================================================
package com.boredream.designrescollection.net;


import android.content.Context;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.AsyncTask;
import android.text.TextUtils;

import com.boredream.bdcodehelper.entity.AppUpdateInfo;
import com.boredream.bdcodehelper.entity.FileUploadResponse;
import com.boredream.bdcodehelper.entity.ListResponse;
import com.boredream.bdcodehelper.net.ObservableDecorator;
import com.boredream.designrescollection.base.BaseEntity;
import com.boredream.designrescollection.constants.CommonConstants;
import com.boredream.designrescollection.entity.DesignRes;
import com.boredream.designrescollection.entity.FeedBack;
import com.boredream.designrescollection.entity.User;
import com.boredream.designrescollection.utils.UserInfoKeeper;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.animation.GlideAnimation;
import com.bumptech.glide.request.target.SimpleTarget;
import com.squareup.okhttp.Interceptor;
import com.squareup.okhttp.MediaType;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.Request;
import com.squareup.okhttp.RequestBody;
import com.squareup.okhttp.Response;
import com.squareup.okhttp.logging.HttpLoggingInterceptor;

import java.io.IOException;
import java.util.Map;

import retrofit.GsonConverterFactory;
import retrofit.Retrofit;
import retrofit.RxJavaCallAdapterFactory;
import retrofit.http.Body;
import retrofit.http.GET;
import retrofit.http.POST;
import retrofit.http.PUT;
import retrofit.http.Path;
import retrofit.http.Query;
import rx.Observable;
import rx.Subscriber;
import rx.functions.Action1;

public class HttpRequest {
    // LeanCloud
    public static final String HOST = "https://api.leancloud.cn";
    public static final String FILE_HOST = "";

    private static final String APP_ID_NAME = "X-LC-Id";
    private static final String API_KEY_NAME = "X-LC-Key";
    public static final String SESSION_TOKEN_KEY = "X-LC-Session";

    private static final String APP_ID_VALUE = "iaEH7ObIA4sPY8RSs3VCVXBg-gzGzoHsz";
    private static final String API_KEY_VALUE = "dXfhXIVyeWMN2czJkd4ehwzs";

    private static Retrofit retrofit;
    private static OkHttpClient httpClient;

    public static OkHttpClient getHttpClient() {
        return httpClient;
    }

    static {
        // OkHttpClient
        httpClient = new OkHttpClient();

        // 统一添加的Header
        httpClient.networkInterceptors().add(new Interceptor() {
            @Override
            public Response intercept(Chain chain) throws IOException {
                Request request = chain.request().newBuilder()
                        .addHeader("Content-Type", "application/json")
                        .addHeader(APP_ID_NAME, APP_ID_VALUE)
                        .addHeader(API_KEY_NAME, API_KEY_VALUE)
                        .addHeader(SESSION_TOKEN_KEY, UserInfoKeeper.getToken())
                        .build();
                return chain.proceed(request);
            }
        });

        // log
        HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
        interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
        httpClient.interceptors().add(interceptor);

        // Retrofit
        retrofit = new Retrofit.Builder()
                .baseUrl(HOST)
                .addConverterFactory(GsonConverterFactory.create()) // gson
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) // rxjava
                .client(httpClient)
                .callbackExecutor(AsyncTask.THREAD_POOL_EXECUTOR)
                .build();
    }

    public interface AppService {
        ////////////////////////////// 通用接口 //////////////////////////////
        // 登录用户
        @GET("/1/login")
        Observable<User> login(
                @Query("username") String username,
                @Query("password") String password);

        // 注册用户
        @POST("/1/users")
        Observable<User> register(
                @Body User user);

        // 修改用户详情(注意, 提交什么参数修改什么参数)
        @PUT("/1/users/{objectId}")
        Observable<BaseEntity> updateUserById(
                @Path("objectId") String userId,
                @Body Map<String, Object> updateInfo);

        // 上传图片接口
        @POST("/1/files/{fileName}")
        Observable<FileUploadResponse> fileUpload(
                @Path("fileName") String fileName,
                @Body RequestBody image);

        // 查询app更新信息
        @GET("/1/classes/AppUpdateInfo")
        Observable<ListResponse<AppUpdateInfo>> getAppUpdateInfo();

        // 提交意见反馈
        @POST("/1/classes/FeedBack")
        Observable<BaseEntity> addFeedBack(
                @Body FeedBack feedBack);


        ////////////////////////////// 业务接口 //////////////////////////////

        // 查询设计资源
        @GET("/1/classes/DesignRes")
        Observable<ListResponse<DesignRes>> getDesignRes(
                @Query("limit") int perPageCount,
                @Query("skip") int page,
                @Query("where") String where,
                @Query("include") String include);
    }

    public static AppService getApiService() {
        return retrofit.create(AppService.class);
    }

    ////////////////////////////// 业务接口方法 //////////////////////////////

    /**
     * 查询设计资源
     */
    public static Observable<ListResponse<DesignRes>> getDesignRes(int page) {
        AppService service = getApiService();
        String where = "{}";
        return service.getDesignRes(CommonConstants.COUNT_OF_PAGE,
                (page - 1) * CommonConstants.COUNT_OF_PAGE, where, null);
    }

    /**
     * 查询设计资源
     *
     * @param page
     * @param name 搜索名称
     */
    public static Observable<ListResponse<DesignRes>> getDesignRes(int page, String name) {
        AppService service = getApiService();
        String whereName = "{}";
        if (!TextUtils.isEmpty(name)) {
            whereName = "{\"name\":{\"$regex\":\".*" + name + ".*\"}}";
        }
        String where = whereName;
        return service.getDesignRes(CommonConstants.COUNT_OF_PAGE,
                (page - 1) * CommonConstants.COUNT_OF_PAGE, where, null);
    }


    ////////////////////////////// 通用接口方法 //////////////////////////////

    /**
     * 登录用户
     *
     * @param username 用户名
     * @param password 密码
     */
    public static Observable<User> login(String username, String password) {
        AppService service = getApiService();
        return service.login(username, password)
                .doOnNext(new Action1<User>() {
                    @Override
                    public void call(User user) {
                        // 保存登录用户数据以及token信息
                        UserInfoKeeper.setCurrentUser(user);
                    }
                });
    }

    /**
     * 上传图片
     *
     * @param call    上传成功回调
     * @param context
     * @param uri     图片uri
     * @param reqW    上传图片需要压缩的宽度
     * @param reqH    上传图片需要压缩的高度
     * @param call
     */
    public static void fileUpload(final Context context, Uri uri, int reqW, int reqH, final Subscriber<FileUploadResponse> call) {
        final AppService service = getApiService();
        final String filename = "avatar_" + System.currentTimeMillis() + ".jpg";

        // 先从本地获取图片,利用Glide压缩图片后获取byte[]
        Glide.with(context).load(uri).asBitmap().toBytes().into(
                new SimpleTarget<byte[]>(reqW, reqH) {
                    @Override
                    public void onResourceReady(final byte[] resource, GlideAnimation<? super byte[]> glideAnimation) {
                        // 上传图片
                        RequestBody requestBody = RequestBody.create(MediaType.parse("image/jpeg"), resource);

                        Observable<FileUploadResponse> observable = service.fileUpload(filename, requestBody);
                        ObservableDecorator.decorate(observable)
                                .subscribe(call);
                    }

                    @Override
                    public void onLoadFailed(Exception e, Drawable errorDrawable) {
                        super.onLoadFailed(e, errorDrawable);
                        call.onError(new Throwable("图片解析失败"));
                    }
                });
    }

}



================================================
FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/net/SimpleSubscriber.java
================================================
package com.boredream.designrescollection.net;


import android.content.Context;

import com.boredream.bdcodehelper.utils.ErrorInfoUtils;
import com.boredream.bdcodehelper.utils.ToastUtils;

import rx.Subscriber;

/**
 * 通用订阅者,用于统一处理回调
 */
public class SimpleSubscriber<T> extends Subscriber<T> {

    private Context context;

    public SimpleSubscriber(Context context) {
        this.context = context;
    }

    @Override
    public void onCompleted() {
        // sub
    }

    @Override
    public void onError(Throwable throwable) {
        // 统一处理错误回调,显示Toast
        String errorInfo = ErrorInfoUtils.parseHttpErrorInfo(throwable);
        ToastUtils.showToast(context, errorInfo);
    }

    @Override
    public void onNext(T t) {
        // sub
    }


}


================================================
FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/utils/UpdateUtils.java
================================================
package com.boredream.designrescollection.utils;


import android.app.Activity;
import android.app.DownloadManager;
import android.content.Context;
import android.content.DialogInterface;
import android.database.Cursor;
import android.net.Uri;
import android.os.Environment;
import android.support.annotation.NonNull;
import android.support.v7.app.AlertDialog;

import com.boredream.bdcodehelper.entity.AppUpdateInfo;
import com.boredream.bdcodehelper.entity.ListResponse;
import com.boredream.bdcodehelper.net.ObservableDecorator;
import com.boredream.bdcodehelper.utils.AppUtils;
import com.boredream.bdcodehelper.utils.DialogUtils;
import com.boredream.bdcodehelper.utils.NetUtils;
import com.boredream.bdcodehelper.utils.ToastUtils;
import com.boredream.designrescollection.R;
import com.boredream.designrescollection.base.BaseActivity;
import com.boredream.designrescollection.net.HttpRequest;
import com.boredream.designrescollection.net.SimpleSubscriber;

import java.util.ArrayList;
import java.util.Locale;

import rx.Observable;

/**
 * 检查更新工具类
 */
public class UpdateUtils {

    public static final int DOWNLOAD_STATUS_NEED_LOAD = 1;
    public static final int DOWNLOAD_STATUS_RUNNING = 2;
    public static final int DOWNLOAD_STATUS_LOADED = 3;

    /**
     * 检测版本更新
     *
     * @param context
     * @param isForceCheck 是否强制检测更新
     *                     true强制 - 无论什么网络环境都会提示更新
     *                     false非强制 - WiFi情况下才提示更新
     */
    public static void checkUpdate(final BaseActivity context, final boolean isForceCheck) {
        if (!NetUtils.isConnected(context)) {
            // 无网络时
            if (isForceCheck) {
                // 手动强制检测更新时,提示文字
                ToastUtils.showToast(context, "请检查网络连接");
            } else {
                // 非强制不做操作
            }
            return;
        }

        // 开始检测更新

        if (isForceCheck) {
            // 强制更新时,才提示进度框
            context.showProgressDialog();
        }

        Observable<ListResponse<AppUpdateInfo>> observable = HttpRequest.getApiService().getAppUpdateInfo();
        ObservableDecorator.decorate(observable).subscribe(
                new SimpleSubscriber<ListResponse<AppUpdateInfo>>(context) {
                    @Override
                    public void onError(Throwable throwable) {
                        if (isForceCheck) {
                            // 强制更新时,才提示错误
                            super.onError(throwable);
                        }
                        context.dismissProgressDialog();
                    }

                    @Override
                    public void onNext(ListResponse<AppUpdateInfo> response) {
                        context.dismissProgressDialog();

                        ArrayList<AppUpdateInfo> results = response.getResults();
                        if (results.size() == 0) {
                            if (isForceCheck) {
                                ToastUtils.showToast(context, "当前已经是最新版本");
                            }
                        }


                        AppUpdateInfo newestUpdateInfo = results.get(0);
                        for (AppUpdateInfo updateInfo : results) {
                            if (updateInfo.getVersion() > newestUpdateInfo.getVersion()) {
                                // 取最大版本号的作为最新版本
                                newestUpdateInfo = updateInfo;
                            }
                        }

                        if (newestUpdateInfo.getVersion() <= AppUtils.getAppVersionCode(context)) {
                            if (isForceCheck) {
                                ToastUtils.showToast(context, "当前已经是最新版本");
                            }
                        } else {
                            showUpdateConfirmDialog(context, newestUpdateInfo);
                        }
                    }
                }
        );
    }

    /**
     * 无Wifi状态确认更新对话框
     */
    private static void showNoWifiConfirmDialog(final BaseActivity context, final AppUpdateInfo updateInfo) {
        DialogUtils.showCommonDialog(context, "没有wifi连接,是否继续选择更新?",
                new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        startDownload(context, updateInfo);
                    }
                });
    }

    /**
     * 显示更新对话框,包含版本相关信息
     */
    private static void showUpdateConfirmDialog(final BaseActivity context, final AppUpdateInfo updateInfo) {
        String content = String.format(Locale.CHINESE,
                context.getResources().getString(R.string.update_info),
                updateInfo.getVersionName(),
                updateInfo.getUpdateInfo() == null ? "无" : updateInfo.getUpdateInfo());

        new AlertDialog.Builder(context)
                .setTitle("发现新版本")
                .setMessage(content)
                .setPositiveButton("立即更新", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        if (NetUtils.isWifi(context)) {
                            startDownload(context, updateInfo);
                        } else {
                            showNoWifiConfirmDialog(context, updateInfo);
                        }
                    }
                })
                .setNegativeButton("以后再说", null)
                .show();
    }

    /**
     * 开始下载
     *
     * @param context
     * @param updateInfo
     */
    private static void startDownload(BaseActivity context, AppUpdateInfo updateInfo) {
        int status = getDownloadStatus(context, updateInfo);
        if (status != DOWNLOAD_STATUS_NEED_LOAD) {
            // 不用下载则无需下列操作
            return;
        }

        ToastUtils.showToast(context, "开始下载安装包...");

        // parse url
        Uri mUri = Uri.parse(updateInfo.getFileUrl());

        // create request
        DownloadManager.Request r = new DownloadManager.Request(mUri);

        // set request property
        String apkName = getDownloadApkName(context, updateInfo);
        r.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, apkName);
        r.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);

        // create manager
        DownloadManager dm = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);

        // key code, set mine type
        r.setMimeType("application/vnd.android.package-archive");

        // add to queue
        dm.enqueue(r);
    }

    @NonNull
    private static String getDownloadApkName(BaseActivity context, AppUpdateInfo updateInfo) {
        return context.getString(R.string.app_name) + "_" + updateInfo.getVersionName() + ".apk";
    }

    /**
     * 判断当前版本文件下载状态
     *
     * @param context
     * @param updateInfo
     * @return
     */
    private static int getDownloadStatus(BaseActivity context, AppUpdateInfo updateInfo) {
        DownloadManager.Query query = new DownloadManager.Query();
        DownloadManager dm = (DownloadManager) context.getSystemService(Activity.DOWNLOAD_SERVICE);
        Cursor c = dm.query(query);

        if (!c.moveToFirst()) {
            // 无下载内容
            return DOWNLOAD_STATUS_NEED_LOAD;
        }

        do {
            int status = c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS));
            String title = c.getString(c.getColumnIndex(DownloadManager.COLUMN_TITLE));
            String apkName = getDownloadApkName(context, updateInfo);
            if (title.equals(apkName)) {
                // 如果下载列表中文件是当前版本应用,则继续判断下载状态
                if (status == DownloadManager.STATUS_SUCCESSFUL) {
                    // 如果已经下载,返回状态,同时直接提示安装
                    String uri = c.getString(c.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI));
                    AppUtils.promptInstall(context, Uri.parse(uri));
                    return DOWNLOAD_STATUS_LOADED;
                } else if (status == DownloadManager.STATUS_RUNNING
                        || status == DownloadManager.STATUS_PAUSED
                        || status == DownloadManager.STATUS_PENDING) {
                    return DOWNLOAD_STATUS_RUNNING;
                } else {
                    // 失败也视为可以再次下载
                    return DOWNLOAD_STATUS_NEED_LOAD;
                }
            }
        } while (c.moveToNext());

        return DOWNLOAD_STATUS_NEED_LOAD;
    }

    /**
     * 根据下载队列id获取下载Uri
     *
     * @param enqueueId
     * @return null-获取不到
     */
    public static Uri getDownloadUriById(Context context, long enqueueId) {
        DownloadManager.Query query = new DownloadManager.Query();
        query.setFilterById(enqueueId);
        DownloadManager dm = (DownloadManager) context.getSystemService(Activity.DOWNLOAD_SERVICE);
        Cursor c = dm.query(query);
        if (c.moveToFirst()) {
            int columnIndex = c.getColumnIndex(DownloadManager.COLUMN_STATUS);
            if (DownloadManager.STATUS_SUCCESSFUL == c.getInt(columnIndex)) {
                String uri = c.getString(c.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI));
                return Uri.parse(uri);
            }
        }
        return null;
    }

}


================================================
FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/utils/UserInfoKeeper.java
================================================
package com.boredream.designrescollection.utils;


import android.content.Context;
import android.content.Intent;

import com.boredream.designrescollection.activity.LoginActivity;
import com.boredream.designrescollection.entity.User;

/**
 * 用户信息保存工具
 */
public class UserInfoKeeper {

    private static User currentUser;

    /**
     * 获取当前登录用户
     */
    public static User getCurrentUser() {
        return currentUser;
    }

    /**
     * 保存设置当前登录用户
     */
    public static void setCurrentUser(User user) {
        currentUser = user;
    }

    /**
     * 清空当前登录用户
     */
    public static void clearCurrentUser() {
        currentUser = null;
    }

    public static String getToken() {
        // 统一Header配置时用的token,没有的话要用空字符串,不能为null
        String token = "";
        if (currentUser != null && currentUser.getSessionToken() != null) {
            token = currentUser.getSessionToken();
        }
        return token;
    }

    /**
     * 登出
     */
    public static void logout() {
        clearCurrentUser();
    }

    /**
     * 检测登录状态
     *
     * @return true-已登录 false-未登录,会自动跳转至登录页
     */
    public static boolean checkLogin(Context context) {
        if (currentUser == null) {
            Intent intent = new Intent(context, LoginActivity.class);
            intent.putExtra("checkLogin", true);
            context.startActivity(intent);
            return false;
        }
        return true;
    }
}


================================================
FILE: DesignResCollection_MVC/app/src/main/res/anim/loading.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <rotate
        android:duration="500"
        android:fromDegrees="0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:repeatCount="-1"
        android:toDegrees="359" />
</set>

================================================
FILE: DesignResCollection_MVC/app/src/main/res/color/txt_blue2gray_sel.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/txt_gray" android:state_enabled="false" />
    <item android:color="@color/txt_link_blue" />
</selector>

================================================
FILE: DesignResCollection_MVC/app/src/main/res/drawable/ic_fav_grey2black_sel.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@mipmap/ic_favorite_black_24dp" android:state_checked="true"/>
    <item android:drawable="@mipmap/ic_favorite_grey600_24dp"/>

</selector>

================================================
FILE: DesignResCollection_MVC/app/src/main/res/drawable/ic_home_grey2black_sel.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@mipmap/ic_home_black_24dp" android:state_checked="true"/>
    <item android:drawable="@mipmap/ic_home_grey600_24dp"/>

</selector>

================================================
FILE: DesignResCollection_MVC/app/src/main/res/drawable/ic_more_grey2black_sel.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@mipmap/ic_timer_auto_black_24dp" android:state_checked="true"/>
    <item android:drawable="@mipmap/ic_timer_auto_grey600_24dp"/>

</selector>

================================================
FILE: DesignResCollection_MVC/app/src/main/res/drawable/ic_search_grey2black_sel.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@mipmap/ic_search_black_24dp" android:state_checked="true"/>
    <item android:drawable="@mipmap/ic_search_grey600_24dp"/>

</selector>

================================================
FILE: DesignResCollection_MVC/app/src/main/res/drawable/ic_settings_grey2black_sel.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@mipmap/ic_settings_black_24dp" android:state_checked="true"/>
    <item android:drawable="@mipmap/ic_settings_grey600_24dp"/>

</selector>

================================================
FILE: DesignResCollection_MVC/app/src/main/res/drawable/oval_progress.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@mipmap/bg_pull_to_refresh" />

    <item>
        <rotate
            android:drawable="@mipmap/ic_loading"
            android:fromDegrees="0"
            android:pivotX="50%"
            android:pivotY="50%"
            android:toDegrees="360" />
    </item>

</layer-list>

================================================
FILE: DesignResCollection_MVC/app/src/main/res/layout/activity_about.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <include layout="@layout/include_titlebar" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_horizontal"
        android:orientation="vertical"
        android:padding="@dimen/activity_vertical_margin">

        <ImageView
            android:layout_width="56dp"
            android:layout_height="56dp"
            android:layout_marginTop="@dimen/margin_large"
            android:scaleType="centerCrop"
            android:src="@mipmap/ic_launcher" />

        <TextView
            style="@style/TextViewSubhead"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/margin_small"
            android:text="@string/app_name" />

        <TextView
            android:id="@+id/tv_version"
            style="@style/TextViewCaption"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/margin_tiny"
            android:text="Version 1.0.0" />

        <TextView
            android:id="@+id/tv_about"
            style="@style/TextViewBody"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/margin_large"
            android:gravity="center"
            android:text="@string/about"
            android:textColor="@color/txt_gray" />

    </LinearLayout>
</LinearLayout>


================================================
FILE: DesignResCollection_MVC/app/src/main/res/layout/activity_feed_back.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/white"
    android:orientation="vertical">

    <include layout="@layout/include_titlebar" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:padding="@dimen/margin_medium">

        <EditText
            android:id="@+id/et_content"
            style="@style/TextViewSubhead"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="top"
            android:hint="请输入您的意见反馈"
            android:maxLines="10"
            android:minLines="3"
            android:padding="@dimen/margin_medium" />

        <EditText
            android:id="@+id/et_email"
            style="@style/EditTextSingleLine"
            android:layout_marginTop="@dimen/margin_small"
            android:hint="请输入您的邮箱" />
    </LinearLayout>

</LinearLayout>


================================================
FILE: DesignResCollection_MVC/app/src/main/res/layout/activity_input.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <include layout="@layout/include_titlebar" />

    <TextView
        style="@style/TextViewSubhead"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="@dimen/margin_medium"
        android:text="名字不得超过12个字符"
        android:textColor="@color/txt_gray" />

    <EditText
        android:id="@+id/et"
        style="@style/EditTextSingleLine"
        android:layout_height="48dp"
        android:layout_margin="@dimen/margin_medium"
        android:maxLength="12" />

</LinearLayout>


================================================
FILE: DesignResCollection_MVC/app/src/main/res/layout/activity_login.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    android:orientation="vertical">

    <include layout="@layout/include_titlebar" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:padding="@dimen/activity_vertical_margin">

        <EditText
            android:id="@+id/et_username"
            style="@style/EditTextSingleLine"
            android:layout_height="48dp"
            android:hint="请输入账号" />

        <EditText
            android:id="@+id/et_password"
            style="@style/EditTextSingleLine"
            android:layout_height="48dp"
            android:layout_marginTop="@dimen/margin_small"
            android:hint="请输入密码"
            android:inputType="textPassword" />

        <Button
            android:id="@+id/btn_login"
            style="@style/ButtonPrimary"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/margin_large"
            android:text="登录" />

        <View
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1" />

        <LinearLayout
            android:id="@+id/ll_regist"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="@dimen/margin_medium"
            android:clickable="true"
            android:gravity="center"
            android:orientation="horizontal">

            <TextView
                style="@style/TextViewBody"
                android:text="还没有账号?  赶紧"
                android:textColor="@color/txt_light_gray" />

            <TextView
                style="@style/TextViewBody"
                android:text="注册"
                android:textColor="@color/colorPrimary" />

        </LinearLayout>
    </LinearLayout>
</LinearLayout>


================================================
FILE: DesignResCollection_MVC/app/src/main/res/layout/activity_main.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    android:orientation="vertical">

    <FrameLayout
        android:id="@+id/fl_content"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">
    </FrameLayout>

    <View
        android:layout_width="match_parent"
        android:layout_height="1px"
        android:background="@color/divider_gray" />

    <include layout="@layout/include_bottom_tab" />

</LinearLayout>


================================================
FILE: DesignResCollection_MVC/app/src/main/res/layout/activity_regist.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <include layout="@layout/include_titlebar" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:padding="@dimen/activity_vertical_margin">

        <EditText
            android:id="@+id/et_username"
            style="@style/EditTextSingleLine"
            android:layout_height="48dp"
            android:hint="请输入手机号"
            android:inputType="number"
            android:maxEms="11" />

        <EditText
            android:id="@+id/et_password"
            style="@style/EditTextSingleLine"
            android:layout_height="48dp"
            android:layout_marginTop="@dimen/margin_small"
            android:hint="设置登录密码,不少于6位"
            android:inputType="textPassword" />

        <Button
            android:id="@+id/btn_next"
            style="@style/ButtonPrimary"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/margin_large"
            android:text="下一步" />
    </LinearLayout>
</LinearLayout>


================================================
FILE: DesignResCollection_MVC/app/src/main/res/layout/activity_register_step1.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <include layout="@layout/include_titlebar" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:padding="@dimen/activity_vertical_margin">

        <EditText
            android:id="@+id/et_username"
            style="@style/EditTextSingleLine"
            android:layout_height="48dp"
            android:hint="请输入手机号"
            android:inputType="number"
            android:maxEms="11" />

        <EditText
            android:id="@+id/et_password"
            style="@style/EditTextSingleLine"
            android:layout_height="48dp"
            android:layout_marginTop="@dimen/margin_small"
            android:hint="设置登录密码,不少于6位"
            android:inputType="textPassword" />

        <Button
            android:id="@+id/btn_next"
            style="@style/ButtonPrimary"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/margin_large"
            android:text="下一步" />
    </LinearLayout>
</LinearLayout>


================================================
FILE: DesignResCollection_MVC/app/src/main/res/layout/activity_register_step2.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <include layout="@layout/include_titlebar" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:padding="@dimen/activity_vertical_margin">

        <TextView
            style="@style/TextViewBody"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="你会收到一条带验证码的短信,请输入验证码:"
            android:textColor="@color/txt_gray" />

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/margin_large">

            <EditText
                android:id="@+id/et_verification_code"
                style="@style/EditTextSingleLine"
                android:hint="请输入验证码"
                android:inputType="number"
                android:maxEms="10" />

            <Button
                android:id="@+id/btn_code_info"
                style="@style/TextViewBody"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:background="@null"
                android:text="60秒"
                android:textColor="@color/txt_blue2gray_sel" />
        </RelativeLayout>

        <Button
            android:id="@+id/btn_next"
            style="@style/ButtonPrimary"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/margin_large"
            android:text="下一步" />
    </LinearLayout>
</LinearLayout>


================================================
FILE: DesignResCollection_MVC/app/src/main/res/layout/activity_setting.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <include layout="@layout/include_titlebar" />

    <android.support.v7.widget.RecyclerView
        android:id="@+id/rv_setting"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginTop="@dimen/margin_medium"
        android:layout_weight="1"></android.support.v7.widget.RecyclerView>

    <Button
        android:id="@+id/btn_logout"
        style="@style/ButtonPrimary"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="@dimen/margin_large"
        android:layout_marginLeft="@dimen/margin_medium"
        android:layout_marginRight="@dimen/margin_medium"
        android:text="退出登录" />

</LinearLayout>


================================================
FILE: DesignResCollection_MVC/app/src/main/res/layout/activity_user_info_edit.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <include layout="@layout/include_titlebar" />

    <LinearLayout
        android:id="@+id/ll_avatar"
        android:layout_width="match_parent"
        android:layout_height="72dp"
        android:layout_marginTop="@dimen/margin_medium"
        android:background="@drawable/bg_white2gray_sel"
        android:clickable="true"
        android:gravity="center_vertical"
        android:orientation="horizontal"
        android:paddingLeft="@dimen/margin_medium"
        android:paddingRight="@dimen/margin_medium">

        <TextView
            style="@style/TextViewSubhead"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="头像" />

        <ImageView
            android:id="@+id/iv_avatar"
            android:layout_width="56dp"
            android:layout_height="56dp"
            android:scaleType="centerCrop"
            android:src="@mipmap/ic_launcher" />

        <ImageView
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:src="@mipmap/ic_chevron_right_grey600_24dp" />

    </LinearLayout>

    <View
        android:layout_width="match_parent"
        android:layout_height="1px"
        android:background="@color/divider_gray" />

    <LinearLayout
        android:id="@+id/ll_username"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:background="@drawable/bg_white2gray_sel"
        android:clickable="true"
        android:gravity="center_vertical"
        android:orientation="horizontal"
        android:paddingLeft="@dimen/margin_medium"
        android:paddingRight="@dimen/margin_medium">

        <TextView
            style="@style/TextViewSubhead"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="昵称" />

        <TextView
            android:id="@+id/tv_username"
            style="@style/TextViewSubhead"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="boredream"
            android:textColor="@color/txt_gray" />

        <ImageView
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:src="@mipmap/ic_chevron_right_grey600_24dp" />

    </LinearLayout>

</LinearLayout>


================================================
FILE: DesignResCollection_MVC/app/src/main/res/layout/frag_home.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <include layout="@layout/include_titlebar" />

    <include layout="@layout/include_refresh_list" />

</LinearLayout>

================================================
FILE: DesignResCollection_MVC/app/src/main/res/layout/frag_user.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <include layout="@layout/include_titlebar" />

    <android.support.v7.widget.RecyclerView
        android:id="@+id/rv_user"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="@dimen/margin_medium">
    </android.support.v7.widget.RecyclerView>

</LinearLayout>

================================================
FILE: DesignResCollection_MVC/app/src/main/res/layout/include_bottom_tab.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/rg_bottom_tab"
    android:layout_width="match_parent"
    android:layout_height="56dp"
    android:background="@android:color/white"
    android:gravity="center"
    android:orientation="horizontal">

    <com.boredream.bdcodehelper.view.DrawableRadioButton
        android:id="@+id/rb1"
        style="@style/RadioButtonBottomTab"
        android:drawableTop="@drawable/ic_home_grey2black_sel"
        app:drawableHeight="40dp"
        app:drawableWidth="40dp" />

    <com.boredream.bdcodehelper.view.DrawableRadioButton
        android:id="@+id/rb2"
        style="@style/RadioButtonBottomTab"
        android:drawableTop="@drawable/ic_more_grey2black_sel"
        app:drawableHeight="40dp"
        app:drawableWidth="40dp" />
</RadioGroup>

================================================
FILE: DesignResCollection_MVC/app/src/main/res/layout/include_more_header.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="96dp"
    android:background="@drawable/bg_white2gray_sel"
    android:gravity="center_vertical"
    android:orientation="horizontal"
    android:paddingLeft="@dimen/margin_medium"
    android:paddingRight="@dimen/margin_medium">

    <ImageView
        android:id="@+id/iv_avatar"
        android:layout_width="68dp"
        android:layout_height="68dp"
        android:scaleType="centerCrop" />

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="68dp"
        android:layout_marginLeft="@dimen/margin_medium"
        android:layout_weight="1"
        android:gravity="center_vertical"
        android:orientation="vertical">

        <TextView
            android:id="@+id/tv_name"
            style="@style/TextViewSubhead"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

    </LinearLayout>

    <ImageView
        android:layout_width="24dp"
        android:layout_height="24dp"
        android:src="@mipmap/ic_chevron_right_grey600_24dp" />

</LinearLayout>

================================================
FILE: DesignResCollection_MVC/app/src/main/res/layout/include_more_no_header.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="96dp"
    android:background="@drawable/bg_white2gray_sel"
    android:gravity="center"
    android:orientation="vertical"
    android:paddingLeft="@dimen/margin_medium"
    android:paddingRight="@dimen/margin_medium">

    <TextView
        style="@style/TextViewBody"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="尚未登录,无法进行收藏等操作。"
        android:textColor="@color/txt_gray" />

    <Button
        android:id="@+id/btn_login"
        style="@style/ButtonPrimary"
        android:layout_width="120dp"
        android:layout_height="40dp"
        android:layout_marginTop="@dimen/margin_small"
        android:text="立即登录" />


</LinearLayout>

================================================
FILE: DesignResCollection_MVC/app/src/main/res/layout/item_design_res.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/bg_white2gray_sel"
    android:gravity="center_vertical"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/iv_image"
        android:layout_width="172dp"
        android:layout_height="172dp"
        android:scaleType="centerCrop" />

    <TextView
        android:id="@+id/tv_name"
        style="@style/TextViewBody"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="@dimen/margin_tiny"
        android:lines="2" />


</LinearLayout>

================================================
FILE: DesignResCollection_MVC/app/src/main/res/layout/item_more_header.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <include
        android:id="@+id/include_more_header"
        layout="@layout/include_more_header" />

    <include
        android:id="@+id/include_more_no_header"
        layout="@layout/include_more_no_header" />

</FrameLayout>

================================================
FILE: DesignResCollection_MVC/app/src/main/res/values/colors.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#3F51B5</color>
    <color name="colorPrimaryDark">#303F9F</color>
    <color name="colorAccent">#FF4081</color>
</resources>


================================================
FILE: DesignResCollection_MVC/app/src/main/res/values/dimens.xml
================================================
<resources>
    <!-- Default screen margins, per the Android Design guidelines. -->
    <dimen name="activity_horizontal_margin">16dp</dimen>
    <dimen name="activity_vertical_margin">16dp</dimen>
</resources>


================================================
FILE: DesignResCollection_MVC/app/src/main/res/values/strings.xml
================================================
<resources>
    <string name="app_name">DesignResCollection</string>
    <string name="action_settings">Settings</string>
    <string name="tab1">首页</string>
    <string name="tab2">搜索</string>
    <string name="tab3">收藏</string>
    <string name="tab4">我</string>
    <string name="about">
        使用LeanCloud的Restful API作为后端支持\n
        使用LeanCloud的定时云代码,自动按时爬取数据并保存至LeanCloud中\n
        使用Retrofit2.0 + RxJava 实现网络请求部分\n
        使用Glide实现图片部分\n
        \n
        开源项目, 地址为\n
        %1$s\n
        \n
        欢迎follow我以及star项目\n
        有任何应用问题可以在反馈中提出\n
        对于项目代码有任何疑问,也可以在github项目中提issue
    </string>
    <string name="github">https://github.com/boredream/DesignResCollection</string>
    <string name="update_info">
        最新版本:%1$s
        \n\n更新内容:\n%2$s
    </string>
</resources>


================================================
FILE: DesignResCollection_MVC/app/src/main/res/values/styles.xml
================================================
<resources xmlns:android="http://schemas.android.com/apk/res/android">


</resources>

================================================
FILE: DesignResCollection_MVC/app/src/main/res/values-w820dp/dimens.xml
================================================
<resources>
    <!-- Example customization of dimensions originally defined in res/values/dimens.xml
         (such as screen margins) for screens with more than 820dp of available width. This
         would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
    <dimen name="activity_horizontal_margin">64dp</dimen>
</resources>


================================================
FILE: DesignResCollection_MVC/app/src/test/java/com/boredream/designrescollection/ExampleUnitTest.java
================================================
package com.boredream.designrescollection;

/**
 * To work on unit tests, switch the Test Artifact in the Build Variants view.
 */
public class ExampleUnitTest {

}

================================================
FILE: DesignResCollection_MVC/bdcodehelper/README.md
================================================
# BDCodeHelper 代码助手
Code Helper Model for android develper (Android Studio)  
代码为Android Studio 的 Model,不是完整App应用。需要主项目依赖导入作为辅助开发工具。

---
# 功能介绍
Model封装了应用中常用的功能,包括
####adapter包
* **LoadMoreAdapter** 加载更多适配器,用于包装普通RecyclerView.Adapter增添一个加载更多功能。适用于所有LayoutManager。  
装饰器设计模式。无需自定义控件,无需写一大堆监听代码,包装即用~   
感谢[飞飞大神](https://github.com/jeffreyhappy)的贡献,我在他代码基础上做了简单修改。

* **SettingRecyclerAdapter** 设置选项列表适配器  。
Item通用样式为:左侧图标、中间文字、右侧文字、右侧图标。  
使用数据类SettingItem,不同字段对应不同控件,图片资源为-1或者字符为null时,对应位置控件不显示。

####fragment包
* **FragmentController** fragment切换控制器。  
初始化时直接add全部fragment, 然后利用show和hide进行切换控制。

####utils包
大部分常用工具类,比较特殊的单独介绍下
* **TitleBuilder** 标题栏构造器。
使用构造器模式设置标题栏,结合layout中的include_titlebar.xml一起使用,先在布局中include引入标题栏布局,  
再于Activity或Fragment中使用TitleBuilder设置标题栏内容,标题栏格式为:标题文字、左右各自是文字/图片按钮。

####views包
封装了一些有用的自定义控件
* **BottomTabRadioButton** 底部导航栏选项卡RadioButton
利用onDraw绘制红色圆点、带数字的红色圆圈,提供各种自定义attrs属性可以对红点的颜色、数字大小、数字颜色等进行配置。
感谢[程序媛大神燕姐](https://github.com/xiaoxuyan)的贡献,我在他代码基础上做了简单修改。




================================================
FILE: DesignResCollection_MVC/bdcodehelper/build.gradle
================================================
apply plugin: 'com.android.library'

android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion

    defaultConfig {
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion

        versionCode 1
        versionName "1.0"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

// App dependencies
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    // Android support
    compile "com.android.support:appcompat-v7:$rootProject.supportLibraryVersion"
    compile "com.android.support:cardview-v7:$rootProject.supportLibraryVersion"
    compile "com.android.support:design:$rootProject.supportLibraryVersion"
    compile "com.android.support:recyclerview-v7:$rootProject.supportLibraryVersion"

    // Retrofit
    compile "com.squareup.retrofit:retrofit:$rootProject.retrofitVersion"
    compile "com.squareup.retrofit:converter-gson:$rootProject.retrofitVersion"
    compile "com.squareup.retrofit:adapter-rxjava:$rootProject.retrofitVersion"
    compile "com.squareup.okhttp:logging-interceptor:$rootProject.okhttploggingVersion"

    // RxJava
    compile "io.reactivex:rxandroid:$rootProject.rxjavaVersion"
    compile "com.jakewharton.rxbinding:rxbinding:$rootProject.rxbindingVersion"

    // Glide
    compile "com.github.bumptech.glide:glide:$rootProject.glideVersion"
    compile "com.github.bumptech.glide:okhttp-integration:$rootProject.glideokhttpVersion"

    // Others
    compile "com.commit451:PhotoView:$rootProject.photoviewVersion"
    compile "com.github.promeg:tinypinyin:1.0.0"
    compile "org.greenrobot:eventbus:3.0.0"
}

// copy to rootProject build.gradle
//// Define versions in a single place
//ext {
//    // Sdk and tools
//    minSdkVersion = 15
//    targetSdkVersion = 23
//    compileSdkVersion = 23
//    buildToolsVersion = '23.0.3'
//
//    // App dependencies
//    supportLibraryVersion = '23.4.0'
//    guavaVersion = '18.0'
//    junitVersion = '4.12'
//    mockitoVersion = '1.10.19'
//    powerMockito = '1.6.2'
//    hamcrestVersion = '1.3'
//    runnerVersion = '0.4.1'
//    rulesVersion = '0.4.1'
//    espressoVersion = '2.2.1'
//    retrofitVersion = '2.0.0-beta2'
//    okhttploggingVersion = '2.6.0'
//    rxjavaVersion = '1.1.0'
//    rxbindingVersion = '0.2.0'
//    glideVersion = '3.6.1'
//    glideokhttpVersion = '1.3.1'
//    photoviewVersion = '1.2.4'
//}

================================================
FILE: DesignResCollection_MVC/bdcodehelper/proguard-rules.pro
================================================
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in D:\adt-bundle-windows-x86_64-20140702\sdk/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# Add any project specific keep options here:

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}


================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/androidTest/java/com/boredream/bdcodehelper/ApplicationTest.java
================================================
package com.boredream.bdcodehelper;

import android.app.Application;
import android.test.ApplicationTestCase;

public class ApplicationTest extends ApplicationTestCase<Application> {
    public ApplicationTest() {
        super(Application.class);
    }
}

================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/AndroidManifest.xml
================================================
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.boredream.bdcodehelper">

    <application
        android:allowBackup="true"
        android:supportsRtl="true">

        <activity android:name=".activity.ImageBrowserActivity" />
        <activity android:name=".activity.WebViewActivity" />

    </application>

</manifest>


================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/activity/ImageBrowserActivity.java
================================================
package com.boredream.bdcodehelper.activity;


import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.widget.TextView;

import com.boredream.bdcodehelper.R;
import com.boredream.bdcodehelper.adapter.ImageBrowserAdapter;
import com.boredream.bdcodehelper.base.BoreBaseActivity;
import com.boredream.bdcodehelper.entity.ImageUrlInterface;

import java.util.ArrayList;

public class ImageBrowserActivity extends BoreBaseActivity {

    private ViewPager vp_image_brower;
    private TextView tv_image_index;

    private int position;
    private ImageBrowserAdapter adapter;
    private ArrayList<? extends ImageUrlInterface> images;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_image_browser);

        initData();
        initView();
        setData();
    }

    private void initData() {
        images = (ArrayList<ImageUrlInterface>) getIntent().getSerializableExtra("images");
        position = getIntent().getIntExtra("position", 0);
    }

    private void initView() {
        vp_image_brower = (ViewPager) findViewById(R.id.vp_image_brower);
        tv_image_index = (TextView) findViewById(R.id.tv_image_index);
    }

    private void setData() {
        adapter = new ImageBrowserAdapter(this, images);
        vp_image_brower.setAdapter(adapter);

        final int size = images.size();
//        int initPosition = Integer.MAX_VALUE / 2 / size * size + position;
        int initPosition = position;

        if (size > 1) {
            tv_image_index.setVisibility(View.VISIBLE);
            tv_image_index.setText((position + 1) + "/" + size);
        } else {
            tv_image_index.setVisibility(View.GONE);
        }

        vp_image_brower.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {

            @Override
            public void onPageSelected(int arg0) {
                int index = arg0 % size;
                tv_image_index.setText((index + 1) + "/" + size);
            }

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {

            }

            @Override
            public void onPageScrollStateChanged(int arg0) {

            }
        });

        vp_image_brower.setCurrentItem(initPosition);
    }
}


================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/activity/WebViewActivity.java
================================================
package com.boredream.bdcodehelper.activity;

import android.annotation.SuppressLint;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

import com.boredream.bdcodehelper.R;
import com.boredream.bdcodehelper.base.BoreBaseActivity;
import com.boredream.bdcodehelper.utils.AppUtils;
import com.boredream.bdcodehelper.utils.TitleBuilder;

public class WebViewActivity extends BoreBaseActivity {

    public static final String EXTRA_TITLE = "title";
    public static final String EXTRA_URL = "url";

    private WebView webview;
    private String title;
    private TitleBuilder titleBuilder;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web_view);

        title = getIntent().getStringExtra(EXTRA_TITLE);
        String url = getIntent().getStringExtra(EXTRA_URL);

        initView();

        showProgressDialog();
        webview.loadUrl(url);
    }

    @SuppressLint("SetJavaScriptEnabled")
    private void initView() {
        titleBuilder = initBackTitle(title);
        titleBuilder.getRootView().setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                String url = webview.getUrl();
                if(!TextUtils.isEmpty(url)) {
                    AppUtils.copy2clipboard(WebViewActivity.this, url);
                    showToast("网址已经复制到剪贴板");
                }
                return false;
            }
        });

        webview = (WebView) findViewById(R.id.webview);
        webview.setWebViewClient(new MyWebClient());

        WebSettings settings = webview.getSettings();
        settings.setJavaScriptEnabled(true);
        settings.setSupportZoom(false);
        settings.setBuiltInZoomControls(false);
        settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
    }

    private class MyWebClient extends WebViewClient {

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            titleBuilder.setTitleText(view.getTitle());
            dismissProgressDialog();
        }

        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            webview.loadUrl(url);
            return true;
        }
    }
}


================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/adapter/BannerPagerAdapter.java
================================================
package com.boredream.bdcodehelper.adapter;

import android.content.Context;
import android.content.Intent;
import android.support.v4.view.PagerAdapter;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.boredream.bdcodehelper.R;
import com.boredream.bdcodehelper.activity.ImageBrowserActivity;
import com.boredream.bdcodehelper.activity.WebViewActivity;
import com.boredream.bdcodehelper.entity.ImageUrlInterface;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;

import java.util.ArrayList;

public class BannerPagerAdapter extends PagerAdapter {

    private Context context;
    private ArrayList<? extends ImageUrlInterface> images;

    public BannerPagerAdapter(Context context, ArrayList<? extends ImageUrlInterface> images) {
        this.context = context;
        this.images = images;
    }

    @Override
    public int getCount() {
        if (images.size() > 1) {
            return Integer.MAX_VALUE;
        }
        return images.size();
    }

    @Override
    public boolean isViewFromObject(View arg0, Object arg1) {
        return arg0 == arg1;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((View) object);
    }

    @Override
    public Object instantiateItem(ViewGroup container, final int position) {
        final ImageUrlInterface image = images.get(position % images.size());

        View view = View.inflate(context, R.layout.item_image_banner, null);
        TextView tv_title = (TextView) view.findViewById(R.id.tv_title);
        final ImageView iv = (ImageView) view.findViewById(R.id.iv_image);

        String title = image.getImageTitle();
        if (TextUtils.isEmpty(title)) {
            tv_title.setVisibility(View.GONE);
        } else {
            tv_title.setVisibility(View.VISIBLE);
            tv_title.setText(title);
        }

        final String url = image.getImageUrl();
        Glide.with(context)
                .load(url)
                .diskCacheStrategy(DiskCacheStrategy.ALL)
//                .placeholder(R.mipmap.ic_account_circle_grey600_24dp)
//                .error(R.mipmap.ic_account_circle_grey600_24dp)
                .centerCrop()
                .crossFade()
                .into(iv);

        iv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (!TextUtils.isEmpty(image.getImageLink())) {
//                    Intent intent = new Intent();
//                    intent.setAction(Intent.ACTION_VIEW);
//                    Uri url = Uri.parse(link);
//                    intent.setData(url);
//                    context.startActivity(intent);
                    Intent intent = new Intent(context, WebViewActivity.class);
                    intent.putExtra("title", image.getImageTitle());
                    intent.putExtra("url", image.getImageLink());
                    context.startActivity(intent);
                } else {
                    Intent intent = new Intent(context, ImageBrowserActivity.class);
                    intent.putExtra("images", images);
                    intent.putExtra("position", position);
                    context.startActivity(intent);
                }
            }
        });

        container.addView(view);
        return view;
    }

}


================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/adapter/ImageBrowserAdapter.java
================================================
package com.boredream.bdcodehelper.adapter;

import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ProgressBar;

import com.boredream.bdcodehelper.R;
import com.boredream.bdcodehelper.entity.ImageUrlInterface;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.load.resource.drawable.GlideDrawable;
import com.bumptech.glide.request.animation.GlideAnimation;
import com.bumptech.glide.request.target.SimpleTarget;

import java.util.List;

import uk.co.senab.photoview.PhotoViewAttacher;

public class ImageBrowserAdapter extends PagerAdapter {

    private Activity context;
    private List<? extends ImageUrlInterface> picUrls;

    public ImageBrowserAdapter(Activity context, List<? extends ImageUrlInterface> picUrls) {
        this.context = context;
        this.picUrls = picUrls;
    }

    @Override
    public int getCount() {
        if (picUrls.size() > 1) {
            return Integer.MAX_VALUE;
        }
        return picUrls.size();
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view == object;
    }

    @Override
    public View instantiateItem(final ViewGroup container, int position) {
        final View rootView = View.inflate(context, R.layout.item_image_browser, null);

        int index = position % picUrls.size();
        final ProgressBar pb_loading = (ProgressBar) rootView.findViewById(R.id.pb_loading);
        final ImageView iv_image_browser = (ImageView) rootView.findViewById(R.id.iv_image_browser);
        final PhotoViewAttacher pva = new PhotoViewAttacher(iv_image_browser);
        String url = picUrls.get(index).getImageUrl();

        Glide.with(context)
                .load(url)
                .diskCacheStrategy(DiskCacheStrategy.ALL)
//                .placeholder(R.mipmap.ic_account_circle_grey600_24dp)
//                .error(R.mipmap.ic_account_circle_grey600_24dp)
                .centerCrop()
                .crossFade()
                .into(new SimpleTarget<GlideDrawable>() {

                    @Override
                    public void onLoadFailed(Exception e, Drawable errorDrawable) {
                        super.onLoadFailed(e, errorDrawable);
                        pb_loading.setVisibility(View.GONE);
                        iv_image_browser.setVisibility(View.VISIBLE);
                    }

                    @Override
                    public void onLoadStarted(Drawable placeholder) {
                        super.onLoadStarted(placeholder);
                        pb_loading.setVisibility(View.VISIBLE);
                        iv_image_browser.setVisibility(View.GONE);
                    }

                    @Override
                    public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) {
                        pb_loading.setVisibility(View.GONE);
                        iv_image_browser.setVisibility(View.VISIBLE);

                        iv_image_browser.setImageDrawable(resource);
                        pva.update();
                    }
                });

        pva.setOnPhotoTapListener(new PhotoViewAttacher.OnPhotoTapListener() {
            @Override
            public void onPhotoTap(View view, float x, float y) {
                context.onBackPressed();
            }
        });

        container.addView(rootView);
        return rootView;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((View) object);
    }
}

================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/adapter/ListDropDownAdapter.java
================================================
package com.boredream.bdcodehelper.adapter;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import com.boredream.bdcodehelper.R;

import java.util.List;

public class ListDropDownAdapter extends BaseAdapter {

    private Context context;
    private List<String> list;
    private int checkItemPosition = 0;

    public void setCheckItem(int position) {
        checkItemPosition = position;
        notifyDataSetChanged();
    }

    public ListDropDownAdapter(Context context, List<String> list) {
        this.context = context;
        this.list = list;
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder viewHolder;
        if (convertView != null) {
            viewHolder = (ViewHolder) convertView.getTag();
        } else {
            convertView = LayoutInflater.from(context).inflate(R.layout.item_default_drop_down, null);
            viewHolder = new ViewHolder(convertView);
            convertView.setTag(viewHolder);
        }
        fillValue(position, viewHolder);
        return convertView;
    }

    private void fillValue(int position, ViewHolder viewHolder) {
        viewHolder.tv_title.setText(list.get(position));
        if (checkItemPosition != -1) {
            if (checkItemPosition == position) {
                viewHolder.tv_title.setTextColor(context.getResources().getColor(R.color.drop_down_selected));
                viewHolder.tv_title.setBackgroundResource(R.color.check_bg);
            } else {
                viewHolder.tv_title.setTextColor(context.getResources().getColor(R.color.drop_down_unselected));
                viewHolder.tv_title.setBackgroundResource(R.color.white);
            }
        }
    }

    static class ViewHolder {
        TextView tv_title;

        ViewHolder(View view) {
            tv_title = (TextView) view.findViewById(R.id.tv_title);
        }
    }
}

================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/adapter/LoadMoreAdapter.java
================================================
package com.boredream.bdcodehelper.adapter;

import android.graphics.drawable.Drawable;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ProgressBar;
import android.widget.TextView;

import com.boredream.bdcodehelper.R;

/**
 * 加载更多装饰适配器,用于包装普通RecyclerView.Adapter增添一个加载更多功能
 */
public class LoadMoreAdapter extends RecyclerView.Adapter {

    /**
     * 下拉状态 - 无内容。footer位置不做任何显示
     */
    public static final int STATUS_NONE = 0;

    /**
     * 下拉状态 - 有更多。footer位置有progressbar进度框
     */
    public static final int STATUS_HAVE_MORE = 1;

    /**
     * 下拉状态 - 已经加载全部数据。footer位置显示文字
     */
    public static final int STATUS_LOADED_ALL = 2;

    /**
     * 当前状态, 默认为 STATUS_NONE
     */
    private int status = STATUS_NONE;

    private int ITEM_VIEW_TYPE_FOOTER = 0x10002;

    /**
     * 正在加载更多中
     */
    private boolean isLoadingMore = false;

    private RecyclerView mRecyclerView;
    private RecyclerView.Adapter mAdapter;
    private OnLoadMoreListener mOnLoadMoreListener;
    private Drawable mLoadMoreProgressDrawable;

    public LoadMoreAdapter(RecyclerView recyclerView,
                           RecyclerView.Adapter adapter,
                           OnLoadMoreListener onLoadMoreListener) {
        // 不设置加载更多progressbar的drawable,使用默认的样式
        this(recyclerView, adapter, onLoadMoreListener, null);
    }

    public LoadMoreAdapter(RecyclerView recyclerView,
                           RecyclerView.Adapter adapter,
                           OnLoadMoreListener onLoadMoreListener,
                           Drawable loadMoreProgressDrawable) {
        mRecyclerView = recyclerView;
        mAdapter = adapter;
        mOnLoadMoreListener = onLoadMoreListener;
        mLoadMoreProgressDrawable = loadMoreProgressDrawable;
        setScrollListener();
    }

    public RecyclerView.Adapter getSrcAdapter() {
        return mAdapter;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        isLoadingMore = false;
        this.status = status;
    }

    @Override
    public int getItemViewType(int position) {
        if (position == mAdapter.getItemCount()) {
            // 最后一个位置是FOOTER
            return ITEM_VIEW_TYPE_FOOTER;
        } else {
            return mAdapter.getItemViewType(position);
        }
    }

    @Override
    public int getItemCount() {
        // 原adapter数量上+1,多了个footer
        return mAdapter.getItemCount() + 1;
    }

    public class LoadMoreViewHolder extends RecyclerView.ViewHolder {

        public ProgressBar pb_footer_progress;
        public TextView tv_footer_progress;

        public LoadMoreViewHolder(View itemView) {
            super(itemView);

            pb_footer_progress = (ProgressBar) itemView.findViewById(R.id.pb_footer_progress);
            tv_footer_progress = (TextView) itemView.findViewById(R.id.tv_footer_progress);
        }
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        if (viewType == ITEM_VIEW_TYPE_FOOTER) {
            LayoutInflater inflater = LayoutInflater.from(parent.getContext());
            View loadMore = inflater.inflate(R.layout.footer_progress, parent, false);
            LoadMoreViewHolder holder = new LoadMoreViewHolder(loadMore);
            return holder;
        } else {
            return mAdapter.onCreateViewHolder(parent, viewType);
        }
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
        if (holder instanceof LoadMoreViewHolder) {
            handleFooter((LoadMoreViewHolder) holder);
        } else {
            mAdapter.onBindViewHolder(holder, position);
        }
    }

    /**
     * 处理footer的view显示
     */
    private void handleFooter(final LoadMoreViewHolder holder) {
        if (mLoadMoreProgressDrawable != null) {
            // 设置自定义进度框样式
            holder.pb_footer_progress.setIndeterminateDrawable(mLoadMoreProgressDrawable);
        }

        // 设置item占满屏幕宽度, 网格列表类型使用
        RecyclerView.LayoutManager layoutManager = mRecyclerView.getLayoutManager();
        if (layoutManager instanceof StaggeredGridLayoutManager) {
            StaggeredGridLayoutManager.LayoutParams layoutParams =
                    (StaggeredGridLayoutManager.LayoutParams) holder.itemView.getLayoutParams();
            layoutParams.setFullSpan(true);
        } else if (layoutManager instanceof GridLayoutManager) {
            final GridLayoutManager manager = (GridLayoutManager) layoutManager;
            manager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
                @Override
                public int getSpanSize(int position) {
                    int spanSize = 1;
                    if (getItemViewType(position) == ITEM_VIEW_TYPE_FOOTER) {
                        spanSize = manager.getSpanCount();
                    }
                    return spanSize;
                }
            });
        }

        // 根据不同状态显示footer样式
        switch (status) {
            case STATUS_HAVE_MORE:
                holder.itemView.setVisibility(View.VISIBLE);

                holder.tv_footer_progress.setVisibility(View.GONE);
                holder.pb_footer_progress.setVisibility(View.VISIBLE);
                break;
            case STATUS_LOADED_ALL:
                holder.itemView.setVisibility(View.VISIBLE);

                holder.tv_footer_progress.setVisibility(View.VISIBLE);
                holder.pb_footer_progress.setVisibility(View.GONE);
                break;
            case STATUS_NONE:
            default:
                holder.itemView.setVisibility(View.GONE);
                break;
        }
    }

    /**
     * 设置滚动监听, 判断当列表滚动到底部时, 触发加载更多回调
     */
    private void setScrollListener() {
        mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
                if (layoutManager instanceof StaggeredGridLayoutManager) {
                    StaggeredGridLayoutManager staggeredGridLayoutManager = (StaggeredGridLayoutManager) layoutManager;
                    int pastVisibleItems = -1;
                    int visibleItemCount = staggeredGridLayoutManager.getChildCount();
                    int totalItemCount = staggeredGridLayoutManager.getItemCount();
                    int[] firstVisibleItems = null;
                    firstVisibleItems = staggeredGridLayoutManager.findFirstVisibleItemPositions(firstVisibleItems);
                    if (firstVisibleItems != null && firstVisibleItems.length > 0) {
                        pastVisibleItems = firstVisibleItems[0];
                    }

                    if (visibleItemCount + pastVisibleItems >= totalItemCount) {
                        triggerLoadMore();
                    }
                } else if (layoutManager instanceof LinearLayoutManager) {
                    // GridLayoutManager 是 LinearLayoutManager 的子类, 也符合这个条件
                    LinearLayoutManager linearLayoutManager = (LinearLayoutManager) layoutManager;
                    int visibleItemCount = linearLayoutManager.getChildCount();
                    int totalItemCount = linearLayoutManager.getItemCount();
                    int firstVisibleItemPosition = linearLayoutManager.findFirstVisibleItemPosition();

                    if (visibleItemCount + firstVisibleItemPosition >= totalItemCount) {
                        triggerLoadMore();
                    }
                }
            }
        });
    }

    /**
     * 触发加载更多回调
     */
    private synchronized void triggerLoadMore() {
        // 如果是正在加载更多中,不再重复触发
        if (isLoadingMore) {
            return;
        }

        // 如果状态不是STATUS_HAVE_MORE则不触发
        if (status != STATUS_HAVE_MORE) {
            return;
        }

        isLoadingMore = true;
        mOnLoadMoreListener.onLoadMore();
        onLoadMore();
    }

    protected void onLoadMore() {
        // sub
    }

    public interface OnLoadMoreListener {
        void onLoadMore();
    }

}


================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/adapter/SettingRecyclerAdapter.java
================================================
package com.boredream.bdcodehelper.adapter;


import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.TextView;

import com.boredream.bdcodehelper.R;
import com.boredream.bdcodehelper.entity.SettingItem;

import java.util.List;

/**
 * 设置选项列表适配器
 * <p>
 * Item通用样式为:左侧图标、中间文字、右侧文字、右侧图标。
 */
public class SettingRecyclerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

    private static final int ITEM_VIEW_TYPE_SETTING_ITEM = 0x10001;

    protected List<SettingItem> datas;
    protected AdapterView.OnItemClickListener mOnItemClickListener;

    public SettingRecyclerAdapter(List<SettingItem> datas, AdapterView.OnItemClickListener listener) {
        this.datas = datas;
        mOnItemClickListener = listener;
    }

    @Override
    public int getItemCount() {
        return datas.size();
    }

    @Override
    public int getItemViewType(int position) {
        return ITEM_VIEW_TYPE_SETTING_ITEM;
    }

    public static class ViewHolder extends RecyclerView.ViewHolder {

        public ImageView iv_left;
        public TextView tv_mid;
        public TextView tv_right;
        public ImageView iv_right;

        public ViewHolder(final View itemView) {
            super(itemView);

            iv_left = (ImageView) itemView.findViewById(R.id.iv_left);
            tv_mid = (TextView) itemView.findViewById(R.id.tv_mid);
            tv_right = (TextView) itemView.findViewById(R.id.tv_right);
            iv_right = (ImageView) itemView.findViewById(R.id.iv_right);
        }
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_setting, parent, false);
        return new ViewHolder(v);
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
        ViewHolder settingViewHolder = (ViewHolder) holder;
        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (mOnItemClickListener != null) {
                    mOnItemClickListener.onItemClick(null, view, position, -1);
                }
            }
        });
        SettingItem data = datas.get(position);

        settingViewHolder.iv_left.setImageResource(data.leftImgRes);
        if (!TextUtils.isEmpty(data.rightText)) {
            settingViewHolder.tv_right.setVisibility(View.VISIBLE);
            settingViewHolder.tv_right.setText(data.rightText);
        } else {
            settingViewHolder.tv_right.setVisibility(View.GONE);
        }
        settingViewHolder.tv_mid.setText(data.midText);

        if (data.rightImage != -1) {
            settingViewHolder.iv_right.setVisibility(View.VISIBLE);
            settingViewHolder.iv_right.setImageResource(data.rightImage);
        } else {
            settingViewHolder.iv_right.setVisibility(View.GONE);
        }
    }

}


================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/base/BoreBaseActivity.java
================================================
package com.boredream.bdcodehelper.base;


import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Toast;

import com.boredream.bdcodehelper.R;
import com.boredream.bdcodehelper.utils.DialogUtils;
import com.boredream.bdcodehelper.utils.TitleBuilder;
import com.boredream.bdcodehelper.utils.ToastUtils;

public class BoreBaseActivity extends AppCompatActivity {

    protected String TAG;
    private Dialog progressDialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        init();
    }

    private void init() {
        TAG = getClass().getSimpleName();
        progressDialog = DialogUtils.createProgressDialog(this);
    }

    /**
     * 左侧有返回键的标题栏
     * <p>如果在此基础上还要加其他内容,比如右侧有文字按钮,可以获取该方法返回值继续设置其他内容
     *
     * @param title 标题
     */
    protected TitleBuilder initBackTitle(String title) {
        return new TitleBuilder(this)
                .setTitleText(title)
                .setLeftImage(R.mipmap.ic_back)
                .setLeftOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        finish();
                    }
                });
    }

    /**
     * 跳转页面,无extra简易型
     *
     * @param tarActivity 目标页面
     */
    public void intent2Activity(Class<? extends Activity> tarActivity) {
        Intent intent = new Intent(this, tarActivity);
        startActivity(intent);
    }

    public void showToast(String msg) {
        ToastUtils.showToast(this, msg, Toast.LENGTH_SHORT);
    }

    public void showLog(String msg) {
        Log.i(TAG, msg);
    }

    public void showProgressDialog() {
        progressDialog.show();
    }

    public void dismissProgressDialog() {
        progressDialog.dismiss();
    }

}


================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/base/BoreBaseEntity.java
================================================
package com.boredream.bdcodehelper.base;


import com.boredream.bdcodehelper.entity.Pointer;

/**
 * 数据实体基类
 * <p>
 * 之所以继承Pointer对象,是因为接口用法的限制,具体可以参考Bmob/LeanCloud/Parse的相关文档<br/>
 * 这样的接口可以让对象在提交创建和获取的时候都更加方便<br/>
 * 提交时只要添加Pointer的type和className等所需字段即可,获取时基本不用做任何额外处理
 */
public class BoreBaseEntity extends Pointer {

    // 添加新数据时,返回为objectId + createdAt
    // 更新数据时,返回为updateAt

    private String createdAt;
    private String updatedAt;

    public String getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(String createdAt) {
        this.createdAt = createdAt;
    }

    public String getUpdatedAt() {
        return updatedAt;
    }

    public void setUpdatedAt(String updatedAt) {
        this.updatedAt = updatedAt;
    }

    @Override
    public boolean equals(Object o) {
        if (o instanceof BoreBaseEntity) {
            BoreBaseEntity oEntity = (BoreBaseEntity) o;
            return this.objectId.equals(oEntity.objectId);
        }
        return super.equals(o);
    }

    @Override
    public String toString() {
        return "BaseEntity{" +
                "objectId='" + objectId + '\'' +
                ", createdAt='" + createdAt + '\'' +
                ", updatedAt='" + updatedAt + '\'' +
                '}';
    }
}

================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/db/AddressData.java
================================================
package com.boredream.bdcodehelper.db;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import com.boredream.bdcodehelper.entity.city.CityModel;
import com.github.promeg.pinyinhelper.Pinyin;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;

public class AddressData {
    public static ArrayList<String> mProvinceDatas = new ArrayList<>();
    public static HashMap<String, ArrayList<CityModel>> mCitisDatasMap = new HashMap<>();
    public static ArrayList<CityModel> allCities = new ArrayList<>();
    public static CityModel currentCity;

    public static void init(final Context context) {
        new Thread() {
            @Override
            public void run() {
                // 初始化,只需要调用一次
                AssetsDatabaseManager.initManager(context);
                // 获取管理对象,因为数据库需要通过管理对象才能够获取
                AssetsDatabaseManager adm = AssetsDatabaseManager.getManager();
                // 通过管理对象获取数据库
                SQLiteDatabase sql = adm.getDatabase("city");

                // city
                Cursor cursorCity = sql.rawQuery("select *,* from T_City, T_Province where T_City.ProID = T_Province.ProSort", null);
                if (!cursorCity.moveToFirst()) {
                    return;
                }
                do {
                    String province = cursorCity.getString(cursorCity.getColumnIndex("ProName"));

                    CityModel city = new CityModel();
                    city.province = province;
                    city.id = cursorCity.getString(cursorCity.getColumnIndex("CitySort"));
                    city.name = cursorCity.getString(cursorCity.getColumnIndex("CityName"));

                    if(!city.name.endsWith("市")) {
                        continue;
                    }

                    city.name = city.name.substring(0, city.name.length() - 1);

                    StringBuilder sbLetter = new StringBuilder();
                    for(char c : city.name.toCharArray()) {
                        String letter;
                        if(c == '长') {
                            letter = "CHANG";
                        } else if(c == '重'){
                            letter = "CHONG";
                        } else if(c == '厦'){
                            letter = "XIA";
                        } else {
                            letter = Pinyin.toPinyin(c);
                        }
                        sbLetter.append(letter);
                    }
                    city.letter = sbLetter.toString();

                    allCities.add(city);

                    if(!mProvinceDatas.contains(province)) {
                        mProvinceDatas.add(province);
                    }

                    ArrayList<CityModel> cities = mCitisDatasMap.get(province);
                    if(cities == null) {
                        cities = new ArrayList<>();
                        cities.add(city);
                        mCitisDatasMap.put(province, cities);
                    } else {
                        cities.add(city);
                    }

                    // 默认城市
                    if(city.name.equals("上海")) {
                        currentCity = city;
                    }

                } while (cursorCity.moveToNext());

                Collections.sort(allCities, new Comparator<CityModel>() {
                    @Override
                    public int compare(CityModel cityModel, CityModel t1) {
                        return cityModel.letter.compareTo(t1.letter);
                    }
                });
            }
        }.start();

    }
}


================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/db/AssetsDatabaseManager.java
================================================
package com.boredream.bdcodehelper.db;

import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.AssetManager;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;

/**
 * This is a Assets Database Manager
 * Use it, you can use a assets database file in you application
 * It will copy the database file to "/data/data/[your application package name]/database" when you first time you use it
 * Then you can get a SQLiteDatabase object by the assets database file
 *
 * How to use:
 * 1. Initialize AssetsDatabaseManager
 * 2. Get AssetsDatabaseManager
 * 3. Get a SQLiteDatabase object through database file
 * 4. Use this database object
 *
 * Using example:
 * AssetsDatabaseManager.initManager(getApplication()); // this method is only need call one time
 * AssetsDatabaseManager mg = AssetsDatabaseManager.getManager();   // get a AssetsDatabaseManager object
 * SQLiteDatabase db1 = mg.getDatabase("db1.db");   // get SQLiteDatabase object, db1.db is a file in assets folder
 * db1.???  // every operate by you want
 * Of cause, you can use AssetsDatabaseManager.getManager().getDatabase("xx") to get a database when you need use a database
 */
public class AssetsDatabaseManager {
    private static String tag = "AssetsDatabase"; // for LogCat
    private static String databasepath = "/data/data/%s/database"; // %s is packageName


    // A mapping from assets database file to SQLiteDatabase object
    private Map<String, SQLiteDatabase> databases = new HashMap<String, SQLiteDatabase>();

    // Context of application
    private Context context = null;

    // Singleton Pattern
    private static AssetsDatabaseManager mInstance = null;

    /**
     * Initialize AssetsDatabaseManager
     * @param context, context of application
     */
    public static void initManager(Context context){
        if(mInstance == null){
            mInstance = new AssetsDatabaseManager(context);
        }
    }

    /**
     * Get a AssetsDatabaseManager object
     * @return, if success return a AssetsDatabaseManager object, else return null
     */
    public static AssetsDatabaseManager getManager(){
        return mInstance;
    }

    private AssetsDatabaseManager(Context context){
        this.context = context;
    }

    /**
     * Get a assets database, if this database is opened this method is only return a copy of the opened database
     * @param dbfile, the assets file which will be opened for a database
     * @return, if success it return a SQLiteDatabase object else return null
     */
    public SQLiteDatabase getDatabase(String dbfile) {
        if(databases.get(dbfile) != null){
            Log.i(tag, String.format("Return a database copy of %s", dbfile));
            return (SQLiteDatabase) databases.get(dbfile);
        }
        if(context==null)
            return null;

        Log.i(tag, String.format("Create database %s", dbfile));
        String spath = getDatabaseFilepath();
        String sfile = getDatabaseFile(dbfile);

        File file = new File(sfile);
        SharedPreferences dbs = context.getSharedPreferences(AssetsDatabaseManager.class.toString(), 0);
        boolean flag = dbs.getBoolean(dbfile, false); // Get Database file flag, if true means this database file was copied and valid
        if(!flag || !file.exists()){
            file = new File(spath);
            if(!file.exists() && !file.mkdirs()){
                Log.i(tag, "Create \""+spath+"\" fail!");
                return null;
            }
            if(!copyAssetsToFilesystem(dbfile, sfile)){
                Log.i(tag, String.format("Copy %s to %s fail!", dbfile, sfile));
                return null;
            }

            dbs.edit().putBoolean(dbfile, true).commit();
        }

        SQLiteDatabase db = SQLiteDatabase.openDatabase(sfile, null, SQLiteDatabase.NO_LOCALIZED_COLLATORS);
        if(db != null){
            databases.put(dbfile, db);
        }
        return db;
    }

    private String getDatabaseFilepath(){
        return String.format(databasepath, context.getApplicationInfo().packageName);
    }

    private String getDatabaseFile(String dbfile){
        return getDatabaseFilepath()+"/"+dbfile;
    }

    private boolean copyAssetsToFilesystem(String assetsSrc, String des){
        Log.i(tag, "Copy "+assetsSrc+" to "+des);
        InputStream istream = null;
        OutputStream ostream = null;
        try{
            AssetManager am = context.getAssets();
            istream = am.open(assetsSrc);
            ostream = new FileOutputStream(des);
            byte[] buffer = new byte[1024];
            int length;
            while ((length = istream.read(buffer))>0){
                ostream.write(buffer, 0, length);
            }
            istream.close();
            ostream.close();
        }
        catch(Exception e){
            e.printStackTrace();
            try{
                if(istream!=null)
                    istream.close();
                if(ostream!=null)
                    ostream.close();
            }
            catch(Exception ee){
                ee.printStackTrace();
            }
            return false;
        }
        return true;
    }

    /**
     * Close assets database
     * @param dbfile, the assets file which will be closed soon
     * @return, the status of this operating
     */
    public boolean closeDatabase(String dbfile){
        if(databases.get(dbfile) != null){
            SQLiteDatabase db = (SQLiteDatabase) databases.get(dbfile);
            db.close();
            databases.remove(dbfile);
            return true;
        }
        return false;
    }

    /**
     * Close all assets database
     */
    static public void closeAllDatabase(){
        Log.i(tag, "closeAllDatabase");
        if(mInstance != null){
            for(int i=0; i<mInstance.databases.size(); ++i){
                if(mInstance.databases.get(i)!=null){
                    mInstance.databases.get(i).close();
                }
            }
            mInstance.databases.clear();
        }
    }
}

================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/AppUpdateInfo.java
================================================
package com.boredream.bdcodehelper.entity;

import com.boredream.bdcodehelper.base.BoreBaseEntity;

public class AppUpdateInfo extends BoreBaseEntity {
    private int version;
    private String versionName;
    private String fileUrl;
    private String updateInfo;

    public int getVersion() {
        return version;
    }

    public void setVersion(int version) {
        this.version = version;
    }

    public String getVersionName() {
        return versionName;
    }

    public void setVersionName(String versionName) {
        this.versionName = versionName;
    }

    public String getFileUrl() {
        return fileUrl;
    }

    public void setFileUrl(String fileUrl) {
        this.fileUrl = fileUrl;
    }

    public String getUpdateInfo() {
        return updateInfo;
    }

    public void setUpdateInfo(String updateInfo) {
        this.updateInfo = updateInfo;
    }
}


================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/ErrorResponse.java
================================================
package com.boredream.bdcodehelper.entity;

public class ErrorResponse {

    private int code;
    private String error;

    public void setCode(int code) {
        this.code = code;
    }

    public void setError(String error) {
        this.error = error;
    }

    public int getCode() {
        return code;
    }

    public String getError() {
        return error;
    }

    @Override
    public String toString() {
        return "ErrorResponse{" +
                "code=" + code +
                ", error='" + error + '\'' +
                '}';
    }
}



================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/FileUploadResponse.java
================================================
package com.boredream.bdcodehelper.entity;

public class FileUploadResponse {
    private String filename;
    private String group;
    private String url;

    public void setFilename(String filename) {
        this.filename = filename;
    }

    public void setGroup(String group) {
        this.group = group;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getFilename() {
        return filename;
    }

    public String getGroup() {
        return group;
    }

    public String getUrl() {
        return url;
    }

    @Override
    public boolean equals(Object o) {
        if(o instanceof FileUploadResponse) {
            return this.url.equals(((FileUploadResponse)o).url);
        }
        return super.equals(o);
    }
}


================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/FormItem.java
================================================
package com.boredream.bdcodehelper.entity;

import android.text.InputType;

public class FormItem {

    public static final int TYPE_INPUT = 0;
    public static final int TYPE_SELECT = 1;

    /**
     * 类型,0-输入,1-选择
     */
    public int type;

    /**
     * 左侧文字
     */
    public String leftText;

    /**
     * 中间文字,hint使用
     */
    public String midText;

    /**
     * 输入框类型
     */
    public int inputType;

    /**
     * 右侧图片id
     */
    public int rightImg;

    public FormItem() {

    }

    public static FormItem getInputItem(String leftText, String hint) {
        return getInputItem(leftText, hint, InputType.TYPE_CLASS_TEXT);
    }

    public static FormItem getInputItem(String leftText, String hint, int inputType) {
        FormItem formItem = new FormItem();
        formItem.type = TYPE_INPUT;
        formItem.leftText = leftText;
        formItem.midText = hint;
        formItem.inputType = inputType;
        return formItem;
    }

    public static FormItem getSelectItem(String leftText, int rightImg) {
        FormItem formItem = new FormItem();
        formItem.type = TYPE_SELECT;
        formItem.leftText = leftText;
        formItem.rightImg = rightImg;
        return formItem;
    }

}


================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/ImageUrlInterface.java
================================================
package com.boredream.bdcodehelper.entity;

import java.io.Serializable;

public interface ImageUrlInterface extends Serializable {
    String getImageUrl();
    String getImageTitle();
    String getImageLink();
}


================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/ListResponse.java
================================================
package com.boredream.bdcodehelper.entity;

import java.util.ArrayList;

public class ListResponse<T> {
    private ArrayList<T> results;

    public ArrayList<T> getResults() {
        return results;
    }

    public void setResults(ArrayList<T> results) {
        this.results = results;
    }
}


================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/PageIndex.java
================================================
package com.boredream.bdcodehelper.entity;

import com.boredream.bdcodehelper.adapter.LoadMoreAdapter;

import java.util.List;

/**
 * 页数索引, 多页加载时使用
 */
public class PageIndex {

    /**
     * 起始页
     */
    private int startPage;

    /**
     * 请求加载的新页数
     */
    private int newPage;

    /**
     * 当前已加载的页数
     */
    private int currentPage;

    /**
     * 每页加载的数量
     */
    private int countPerPage;

    public int getStartPage() {
        return startPage;
    }

    /**
     * 页数索引
     *
     * @param startPage 起始页, 通常是 0 或 1
     */
    public PageIndex(int startPage, int countPerPage) {
        this.startPage = startPage;
        this.countPerPage = countPerPage;
        init();
    }

    /**
     * 重置初始化
     */
    public void init() {
        this.currentPage = startPage;
    }

    /**
     * 新页数数据获取成功, 将当前页数更新未新页数
     */
    private void success() {
        currentPage = newPage;
    }

    /**
     * 起始页
     *
     * @return 起始页
     */
    public int toStartPage() {
        newPage = startPage;
        return newPage;
    }

    /**
     * 下一页
     *
     * @return 当前页+1作为下一页
     */
    public int toNextPage() {
        newPage = currentPage + 1;
        return newPage;
    }

    /**
     * 数据获取成功, 设置返回结果
     *
     * @param adapter
     * @param currentList 当前已有数据
     * @param newList     请求获取的新数据
     * @param <T>
     */
    public <T> void setResponse(LoadMoreAdapter adapter, List<T> currentList, List<T> newList) {
        // 更新当前页数
        success();

        // 如果当前页为起始页, 则清空数据
        if (currentPage == startPage) {
            currentList.clear();
        }

        if (newList == null) {
            return;
        }

        // 添加数据
        currentList.addAll(newList);

        // 设置是否已加载完全部数据状态
        adapter.setStatus(newList.size() == countPerPage
                ? LoadMoreAdapter.STATUS_HAVE_MORE : LoadMoreAdapter.STATUS_LOADED_ALL);

        // 更新UI
        adapter.notifyDataSetChanged();
    }

}


================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/Pointer.java
================================================
package com.boredream.bdcodehelper.entity;

import com.google.gson.Gson;

import java.io.Serializable;

public class Pointer implements Serializable {
    public static final String TYPE = "Pointer";

    protected String __type;
    protected String className;
    protected String objectId;

    public Pointer() {
    }

    public Pointer(String className, String objectId) {
        this.__type = TYPE;
        this.setClassName(className);
        this.setObjectId(objectId);
    }

    public String get__type() {
        return __type;
    }

    public void set__type(String __type) {
        this.__type = __type;
    }

    public String getClassName() {
        return this.className;
    }

    public void setClassName(String className) {
        this.className = className;
    }

    public String getObjectId() {
        return this.objectId;
    }

    public void setObjectId(String objectId) {
        this.objectId = objectId;
    }

    /**
     * 将Pointer转换为所需对象
     *
     * @param clazz 转换目标类型
     * @return 转换后的对象, 转换失败时为null
     */
    public <T> T parseToObject(Class<T> clazz) {
        T t = null;
        Gson gson = new Gson();
        try {
            // 原Pointer对象转为json, 如果用include查询的话, Pointer中除了className还会包含目标对象的数据
            String json = gson.toJson(this);
            // 转为目标对象, 多余的className正好通过转换过滤掉

            t = gson.fromJson(json, clazz);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return t;
    }
}


================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/Relation.java
================================================
package com.boredream.bdcodehelper.entity;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

public class Relation implements Serializable {
    private String __op = "AddRelation";
    private List<Pointer> objects = new ArrayList();

    public Relation(Pointer pointer) {
        this.objects.add(pointer);
    }

    public Relation() {
    }

    public void add(Pointer pointer) {
        this.objects.add(pointer);
    }

    public void remove(Pointer pointer) {
        this.__op = "RemoveRelation";
        this.objects.add(pointer);
    }

    public String get__op() {
        return this.__op;
    }

    public List<Pointer> getObjects() {
        return this.objects;
    }

    public void setObjects(List<Pointer> objects) {
        this.objects = objects;
    }
}


================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/RelationTo.java
================================================
package com.boredream.bdcodehelper.entity;

public class RelationTo {
    public static final String OP_RELATEDTO = "$relatedTo";

    private String key;
    private Pointer object;

    public String getKey() {
        return key;
    }

    public void setKey(String key) {
        this.key = key;
    }

    public Pointer getObject() {
        return object;
    }

    public void setObject(Pointer object) {
        this.object = object;
    }
}


================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/SettingItem.java
================================================
package com.boredream.bdcodehelper.entity;

/**
 * 更多item信息
 */
public class SettingItem {

    /**
     * 左侧图片
     */
    public int leftImgRes;

    /**
     * 中间文字
     */
    public String midText;

    /**
     * 右侧文字
     */
    public String rightText;

    /**
     * 右侧图片
     */
    public int rightImage;

    public SettingItem() {

    }

    public SettingItem(int leftImgRes, String midText, String rightText, int rightImage) {
        this.leftImgRes = leftImgRes;
        this.midText = midText;
        this.rightText = rightText;
        this.rightImage = rightImage;
    }
}


================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/UpdatePswRequest.java
================================================
package com.boredream.bdcodehelper.entity;

public class UpdatePswRequest {
    private String oldPassword;
    private String newPassword;

    public String getOldPassword() {
        return oldPassword;
    }

    public void setOldPassword(String oldPassword) {
        this.oldPassword = oldPassword;
    }

    public String getNewPassword() {
        return newPassword;
    }

    public void setNewPassword(String newPassword) {
        this.newPassword = newPassword;
    }
}


================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/Where.java
================================================
package com.boredream.bdcodehelper.entity;

import java.util.Map;

public class Where {
    public static final String OP_INQUERY = "$inQuery";

    private Map<String, String> where;
    private String className;

    public Map<String, String> getWhere() {
        return where;
    }

    public void setWhere(Map<String, String> where) {
        this.where = where;
    }

    public String getClassName() {
        return className;
    }

    public void setClassName(String className) {
        this.className = className;
    }
}


================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/city/BaseAddressModel.java
================================================
package com.boredream.bdcodehelper.entity.city;

import java.io.Serializable;

public class BaseAddressModel implements Serializable {
    public String id;
    public String name;
}


================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/city/CityModel.java
================================================
package com.boredream.bdcodehelper.entity.city;

public class CityModel extends BaseAddressModel {
	public String province;
	public String letter;

	@Override
	public boolean equals(Object o) {
		if(o instanceof CityModel) {
			return ((CityModel)o).id.equals(this.id);
		}
		return super.equals(o);
	}
}


================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/fragment/FragmentController.java
================================================
package com.boredream.bdcodehelper.fragment;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;

import java.util.ArrayList;

/**
 * fragment切换控制器, 初始化时直接add全部fragment, 然后利用show和hide进行切换控制
 */
public class FragmentController {

    private int containerId;
    private FragmentManager fm;
    private ArrayList<Fragment> fragments;

    public FragmentController(AppCompatActivity activity, int containerId, ArrayList<Fragment> fragments) {
        this.containerId = containerId;
        this.fragments = fragments;
        this.fm = activity.getSupportFragmentManager();
        initFragment();
    }

    public void initFragment() {
        FragmentTransaction ft = fm.beginTransaction();
        for (int i = 0; i < fragments.size(); i++) {
            ft.add(containerId, fragments.get(i), String.valueOf(i));
        }
        ft.commit();
    }

    public void showFragment(int position) {
        hideFragments();
        Fragment fragment = fragments.get(position);
        FragmentTransaction ft = fm.beginTransaction();
        ft.show(fragment);
        ft.commit();
    }

    public void hideFragments() {
        FragmentTransaction ft = fm.beginTransaction();
        for (Fragment fragment : fragments) {
            if (fragment != null) {
                ft.hide(fragment);
            }
        }
        ft.commit();
    }

    public Fragment getFragment(int position) {
        return fragments.get(position);
    }

}

================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/net/ErrorConstants.java
================================================
package com.boredream.bdcodehelper.net;

import java.util.HashMap;
import java.util.Map;

public class ErrorConstants {
    public static Map<Integer, String> errors;

    static {
        errors = new HashMap<>();
        errors.put(9001, "Application Id为空,请初始化.");
        errors.put(9002, "解析返回数据出错");
        errors.put(9003, "上传文件出错");
        errors.put(9004, "文件上传失败");
        errors.put(9005, "批量操作只支持最多50条");
        errors.put(9006, "objectId为空");
        errors.put(9007, "文件大小超过10M");
        errors.put(9008, "上传文件不存在");
        errors.put(9009, "没有缓存数据");
        errors.put(9010, "网络超时");
        errors.put(9011, "BmobUser类不支持批量操作");
        errors.put(9012, "上下文为空");
        errors.put(9013, "BmobObject(数据表名称)格式不正确");
        errors.put(9014, "第三方账号授权失败");
        errors.put(9015, "其他错误均返回此code");
        errors.put(9016, "无网络连接,请检查您的手机网络.");
        errors.put(9017, "与第三方登录有关的错误,具体请看对应的错误描述");
        errors.put(9018, "参数不能为空");
        errors.put(9019, "格式不正确:手机号码、邮箱地址、验证码");

        errors.put(401, "用户登陆信息失效");
        errors.put(500, "服务器忙,请稍后再试");

        errors.put(101, "用户名或密码不正确");
        errors.put(102, "格式不正确");
        errors.put(103, "查询单个对象或更新对象时必须提供objectId 或 非法的 class 名称,class 名称是大小写敏感的,并且必须以英文字母开头,有效的字符仅限在英文字母、数字以及下划线.");
        errors.put(104, "关联的class名称不存在");
        errors.put(105, "字段名是大小写敏感的,且必须以英文字母开头,有效的字符仅限在英文字母、数字以及下划线 或 字段名是");
        errors.put(106, "不是一个正确的指针类型");
        errors.put(107, "数据格式不正确");
        errors.put(108, "用户名和密码是必需的");
        errors.put(109, "登录信息是必需的,如邮箱和密码时缺少其中一个提示此信息");
        errors.put(111, "传入的字段值与字段类型不匹配");
        errors.put(112, "请求的值必须是数组");
        errors.put(113, "请求数组中每个元素应该是一个像这样子的json对象");
        errors.put(114, "请求数组大于50");
        errors.put(117, "纬度范围在[-90, 90] 或 经度范围在[-180, 180]");
        errors.put(120, "要使用此功能,请在");
        errors.put(131, "不正确的deviceToken");
        errors.put(132, "不正确的installationId");
        errors.put(133, "不正确的deviceType");
        errors.put(134, "deviceToken已经存在");
        errors.put(135, "installationId已经存在");
        errors.put(136, "只读属性不能修改 或 android设备不需要设置deviceToken");
        errors.put(138, "表是只读的");
        errors.put(139, "角色名称是大小写敏感的,并且必须以英文字母开头,有效的字符仅限在英文字母、数字、空格、横线以及下划线。");
        errors.put(141, "缺失推送需要的data参数");
        errors.put(142, "时间格式应该如下: 2013-12-04 00:51:13");
        errors.put(143, "必须是一个数字");
        errors.put(144, "不能是之前的时间");
        errors.put(145, "文件大小错误");
        errors.put(146, "文件名错误");
        errors.put(147, "文件分页上传偏移量错误");
        errors.put(148, "文件上下文错误");
        errors.put(149, "空文件");
        errors.put(150, "文件上传错误");
        errors.put(151, "文件删除错误");
        errors.put(160, "图片错误");
        errors.put(161, "图片模式错误");
        errors.put(162, "图片宽度错误");
        errors.put(163, "图片高度错误");
        errors.put(164, "图片长边错误");
        errors.put(165, "图片短边错误");
        errors.put(201, "缺失数据");
        errors.put(202, "用户名已经存在");
        errors.put(203, "邮箱已经存在");
        errors.put(204, "必须提供一个邮箱地址");
        errors.put(205, "没有找到此邮件的用户");
        errors.put(206, "登录用户才能修改自己的信息。RestAPI的Http Header中没有提供sessionToken的正确值,不能修改或删除用户");
        errors.put(207, "验证码错误");
        errors.put(208, "authData不正确");
        errors.put(209, "该手机号码已经存在");
        errors.put(210, "密码不正确");
        errors.put(211, "找不到用户");
        errors.put(301, "验证错误详细提示,如邮箱格式不正确");
        errors.put(302, "Bmob后台设置了应用设置值, 如'不允许SDK创建表 '");
        errors.put(310, "云端逻辑运行错误的详细信息");
        errors.put(311, "云端逻辑名称是大小写敏感的,且必须以英文字母开头,有效的字符仅限在英文字母、数字以及下划线。");
        errors.put(401, "唯一键不能存在重复的值");
        errors.put(402, "查询的wher语句长度大于具体多少个字节");
        errors.put(601, "不正确的BQL查询语句");
        errors.put(1002, "该应用能创建的表数已达到限制");
        errors.put(1003, "该表的行数已达到限制");
        errors.put(1004, "该表的列数已达到限制");
        errors.put(1005, "每月api请求数量已达到限制");
        errors.put(1006, "该应用能创建定时任务数已达到限制");
        errors.put(1007, "该应用能创建云端逻辑数已达到限制");
        errors.put(1500, "你上传的文件大小已超出限制");

        errors.put(10010, "该手机号发送短信达到限制(对于一个应用来说,一天给同一手机号发送短信不能超过10条,一小时给同一手机号发送短信不能超过5条,一分钟给同一手机号发送短信不能超过1条)");
        errors.put(10011, "该账户无可用的发送短信条数");
        errors.put(10012, "身份信息必须审核通过才能使用该功能");
        errors.put(10013, "非法短信内容");
    }
}


================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/net/GlideCircleTransform.java
================================================
package com.boredream.bdcodehelper.net;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.Paint;

import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import com.bumptech.glide.load.resource.bitmap.BitmapTransformation;

public class GlideCircleTransform extends BitmapTransformation {
    public GlideCircleTransform(Context context) {
        super(context);
    }

    protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {
        return circleCrop(pool, toTransform);
    }

    private static Bitmap circleCrop(BitmapPool pool, Bitmap source) {
        if (source == null) return null;
        int size = Math.min(source.getWidth(), source.getHeight());
        int x = (source.getWidth() - size) / 2;
        int y = (source.getHeight() - size) / 2;
        // TODO this could be acquired from the pool too
        Bitmap squared = Bitmap.createBitmap(source, x, y, size, size);
        Bitmap result = pool.get(size, size, Bitmap.Config.ARGB_8888);
        if (result == null) {
            result = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
        }
        Canvas canvas = new Canvas(result);
        Paint paint = new Paint();
        paint.setShader(new BitmapShader(squared, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP));
        paint.setAntiAlias(true);
        float r = size / 2f;
        canvas.drawCircle(r, r, r, paint);
        return result;
    }

    @Override
    public String getId() {
        return getClass().getName();
    }
}

================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/net/MultiPageRequest.java
================================================
package com.boredream.bdcodehelper.net;

import rx.Observable;

public abstract class MultiPageRequest<T> {

    public abstract Observable<T> request(int page);

}


================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/net/ObservableDecorator.java
================================================
package com.boredream.bdcodehelper.net;

import java.util.concurrent.TimeUnit;

import rx.Observable;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;

/**
 * 观察者装饰器
 */
public class ObservableDecorator {

    public static <T> Observable<T> decorate(Observable<T> observable) {
        return observable
                .subscribeOn(Schedulers.newThread())
                .observeOn(AndroidSchedulers.mainThread())
                .delay(1, TimeUnit.SECONDS, AndroidSchedulers.mainThread()); // FIXME 模拟延迟,用于观察加载框等效果
    }
}


================================================
FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/net/RoundedCornersTransformation.java
================================================
package com.boredream.bdcodehelper.net;

/**
 * Copyright (C) 2015 Wasabeef
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.RectF;
import android.graphics.Shader;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.Transformation;
import com.bumptech.glide.load.engine.Resource;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import com.bumptech.glide.load.resource.bitmap.BitmapResource;

public class RoundedCornersTransformation implements Transformation<Bitmap> {

  public enum CornerType {
    ALL,
    TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT,
    TOP, BOTTOM, LEFT, RIGHT,
    OTHER_TOP_LEFT, OTHER_TOP_RIGHT, OTHER_BOTTOM_LEFT, OTHER_BOTTOM_RIGHT,
    DIAGONAL_FROM_TOP_LEFT, DIAGONAL_FROM_TOP_RIGHT
  }

  private BitmapPool mBitmapPool;
  private int mRadius;
  private int mDiameter;
  private int mMargin;
  private CornerType mCornerType;

  public RoundedCornersTransformation(Context context, int radius, int margin) {
    this(context, radius, margin, CornerType.ALL);
  }

  public RoundedCornersTransformation(BitmapPool pool, int radius, int margin) {
    this(pool, radius, margin, CornerType.ALL);
  }

  public RoundedCornersTransformation(Context context, int radius, int margin,
      CornerType cornerType) {
    this(Glide.get(context).getBitmapPool(), radius, margin, cornerType);
  }

  public RoundedCornersTransformation(BitmapPool pool, int radius, int margin,
      CornerType cornerType) {
    mBitmapPool = pool;
    mRadius = radius;
    mDiameter = mRadius * 2;
    mMargin = margin;
    mCornerType = cornerType;
  }

  @Override
  public Resource<Bitmap> transform(Resource<Bitmap> resource, int outWidth, int outHeight) {
    Bitmap source = resource.get();

    int width = source.getWidth();
    int height = source.getHeight();

    Bitmap bitmap = mBitmapPool.get(width, height, Bitmap.Config.ARGB_8888);
    if (bitmap == null) {
      bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
    }

    Canvas canvas = new Canvas(bitmap);
    Paint paint = new Paint();
    paint.setAntiAlias(true);
    paint.setShader(new BitmapShader(source, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP));
    drawRoundRect(canvas, paint, width, height);
    return BitmapResource.obtain(bitmap, mBitmapPool);
  }

  private void drawRoundRect(Canvas canvas, Paint paint, float width, float height) {
    float right = width - mMargin;
    float bottom = height - mMargin;

    switch (mCornerType) {
      case ALL:
        canvas.drawRoundRect(new RectF(mMargin, mMargin, right, bottom), mRadius, mRadius, paint);
        break;
      case TOP_LEFT:
        drawTopLeftRoundRect(canvas, paint, right, bottom);
        break;
      case TOP_RIGHT:
        drawTopRightRoundRect(canvas, paint, right, bottom);
        break;
      case BOTTOM_LEFT:
        drawBottomLeftRoundRect(canvas, paint, right, bottom);
        break;
      case BOTTOM_RIGHT:
        drawBottomRightRoundRect(canvas, paint, right, bottom);
        break;
      case TOP:
        drawTopRoundRect(canvas, paint, right, bottom);
        break;
      case BOTTOM:
        drawBottomRoundRect(canvas, paint, right, bottom);
        break;
      case LEFT:
        drawLeftRoundRect(canvas, paint, right, bottom);
        break;
      case RIGHT:
        drawRightRoundRect(canvas, paint, right, bottom);
        break;
      case OTHER_TOP_LEFT:
        drawOtherTopLeftRoundRect(canvas, paint, right, bottom);
        break;
      case OTHER_TOP_RIGHT:
        drawOtherTopRightRoundRect(canvas, paint, right, bottom);
        break;
      case OTHER_BOTTOM_LEFT:
        drawOtherBottomLeftRoundRect(canvas, paint, right, bottom);
        break;
      case OTHER_BOTTOM_RIGHT:
        drawOtherBottomRightRoundRect(canvas, paint, right, bottom);
        break;
      case DIAGONAL_FROM_TOP_LEFT:
        drawDiagonalFromTopLeftRoundRect(canvas, paint, right, bottom);
        break;
      case DIAGONAL_FROM_TOP_RIGHT:
        drawDiagonalFromTopRightRoundRect(canvas, paint, right, bottom);
        break;
      default:
        canvas.drawRoundRect(new RectF(mMargin, mMargin, right, bottom), mRadius, mRadius, paint);
        break;
    }
  }

  private void drawTopLeftRoundRect(Canvas canvas, Paint paint, float right, float bottom) {
    canvas.drawRoundRect(new RectF(mMargin, mMargin, mMargin + mDiameter, mMargin + mDiameter),
        mRadius, mRadius, paint);
    canvas.drawRect(new RectF(mMargin, mMargin + mRadius, mMargin + mRadius, bottom), paint);
    canvas.drawRect(new RectF(mMargin + mRadius, mMargin, right, bottom), paint);
  }

  private void drawTopRightRoundRect(Canvas canvas, Paint paint, float right, float bottom) {
    canvas.drawRoundRect(new RectF(right - mDiameter, mMargin, right, mMargin + mDiameter), mRadius,
        mRadius, paint);
    canvas.drawRect(new RectF(mMargin, mMargin, right - mRadius, bottom), paint);
    canvas.drawRect(new RectF(right - mRadius, mMargin + mRadius, right, bottom), paint);
  }

  private void drawBottomLeftRoundRect(Canvas canvas, Paint paint, float right, float bottom) {
    canvas.drawRoundRect(new RectF(mMargin, bottom - mDiameter, mMargin + mDiameter, bottom),
        mRadius, mRadius, paint);
    canvas.drawRect(new RectF(mMargin, mMargin, mMargin + mDiameter, bottom - mRadius), paint);
    canvas.drawRect(new RectF(mMargin + mRadius, mMargin, right, bottom), paint);
  }

  private void drawBottomRightRoundRect(Canvas canvas, Paint paint, float right, float bottom) {
    canvas.drawRoundRect(new RectF(right - mDiameter, bottom - mDiameter, right, bottom), mRadius,
        mRadius, paint);
    canvas.drawRect(new RectF(mMargin, mMargin, right - mRadius, bottom), paint);
    canvas.drawRect(new RectF(right - mRadius, mMargin, right, bottom - mRadius), paint);
  }

  private void drawTopRoundRect(Canvas canvas, Paint paint, float right, float bottom) {
    canvas.drawRoundRect(new RectF(mMargin, mMargin, right, mMargin + mDiameter), mRadius, mRadius,
        paint);
    canvas.drawRect(new RectF(mMargin, mMargin + mRadius, right, bottom), paint);
  }

  private void drawBottomRoundRect(Canvas canvas, Paint paint, float right, float bottom) {
    canvas.drawRoundRect(new RectF(mMargin, bottom - mDiameter, right, bottom), mRadius, mRadius,
        paint);
    canvas.drawRect(new RectF(mMargin, mMargin, right, bottom - mRadius), paint);
  }

  private void drawLeftRoundRect(Canvas canvas, Paint paint, float right, float bottom) {
    canvas.drawRoundRect(new RectF(mMargin, mMargin, mMargin + mDiameter, bottom), mRadius, mRadius,
        paint);
    canvas.drawRect(new RectF(mMargin + mRadius, mMargin, right, bottom), paint);
  }

  private void drawRightRoundRect(Canvas canvas, Paint paint, float right, float bottom) {
    canvas.drawRoundRect(new RectF(right - mDiameter, mMargin, right, bottom), mRadius, mRadius,
        paint);
    canvas.drawRect(new RectF(mMargin, mMargin, right - mRadius, bottom), paint);
  }

  private void drawOtherTopLeftRoundRect(Canvas canvas, Paint paint, float right, float bottom) {
    canvas.drawRoundRect(new RectF(mMargin, bottom - mDiameter, right, bottom), mRadius, mRadius,
        paint);
    canvas.drawRoundRect(new RectF(right - mDiameter, mMargin, right, bottom), mRadius, mRadius,
        paint);
    canvas.drawRect(new RectF(mMargin, mMargin, right - mRadius, bottom - mRadius), paint);
  }

  private void drawOtherTopRightRoundRect(Canvas canvas, Paint paint, float right, float bottom) {
    canvas.drawRoundRect(new RectF(mMargin, mMargin, mMargin + mDiameter, bottom), mRadius, mRadius,
        paint);
    canvas.drawRoundRect(new RectF(mMargin, bottom - mDiameter, right, bottom), mRadius, mRadius,
        paint);
    canvas.drawRect(new RectF(mMargin + mRadius, mMargin, right, bottom - mRadius), paint);
  }

  private void drawOtherBottomLeftRoundRect(Canvas canvas, Paint paint, float right, float bottom) {
    canvas.drawRoundRect(new RectF(mMargin, mMargin, right, mMargin + mDiameter), mRadius, mRadius,
        paint);
    canvas.drawRoundRect(new RectF(right - mDiameter, mMargin, right, bottom), mRadius, mRadius,
        paint);
    canvas.drawRect(new RectF(mMargin, mMargin + mRadius, right - mRadius, bottom), paint);
  }

  private void drawOtherBottomRightRoundRect(Canvas canvas, Paint paint, float right,
      float bottom) {
    canvas.drawRoundRect(new RectF(mMargin, mMargin, right, mMargin + mDiameter), mRadius, mRadius,
        paint);
    canvas.drawRoundRect(new RectF(mMargin, mMargin, mMargin + mDiameter, bottom), mRadius, mRadius,
        paint);
    canvas.drawRect(new RectF(mMargin + mRadius, mMargin + mRadius, right, bottom), paint);
  }

  private void drawDiagonalFromTopLeftRoundRect(Canvas canvas, Paint paint, float right,
      float bottom) {
    canvas.drawRoundRect(new RectF(mMargin, mMargin, mMargin + mDiameter, mMargin + mDiameter),
        mRadius, mRadius, paint);
    canvas.drawRoundRect(new RectF(right - mDiameter, bottom - mDiameter, right, bottom), mRadius,
        mRadius, paint);
    canvas.drawRect(new RectF(mMargin, mMargin + mRadius, right - mDiameter, bottom), paint);
    canvas.drawRect(new RectF(mMargin + mDiameter, mMargin, right, bottom - mRadius), paint);
  }

  private void drawDiagonalFromTopRightRoundRect(
Download .txt
gitextract_frklmp72/

├── .gitattributes
├── .gitignore
├── DesignResCollection_MVC/
│   ├── README.md
│   ├── app/
│   │   ├── build.gradle
│   │   ├── proguard.cfg
│   │   └── src/
│   │       ├── androidTest/
│   │       │   └── java/
│   │       │       └── com/
│   │       │           └── boredream/
│   │       │               └── designrescollection/
│   │       │                   └── ApplicationTest.java
│   │       ├── main/
│   │       │   ├── AndroidManifest.xml
│   │       │   ├── java/
│   │       │   │   └── com/
│   │       │   │       └── boredream/
│   │       │   │           └── designrescollection/
│   │       │   │               ├── activity/
│   │       │   │               │   ├── AboutActivity.java
│   │       │   │               │   ├── FeedBackActivity.java
│   │       │   │               │   ├── LoginActivity.java
│   │       │   │               │   ├── MainActivity.java
│   │       │   │               │   ├── RegisterStep1Activity.java
│   │       │   │               │   ├── RegisterStep2Activity.java
│   │       │   │               │   ├── SettingActivity.java
│   │       │   │               │   ├── UserInfoEditActivity.java
│   │       │   │               │   └── UsernameModifyActivity.java
│   │       │   │               ├── adapter/
│   │       │   │               │   ├── DesignResAdapter.java
│   │       │   │               │   └── MoreRecyclerAdapter.java
│   │       │   │               ├── base/
│   │       │   │               │   ├── BaseActivity.java
│   │       │   │               │   ├── BaseApplication.java
│   │       │   │               │   ├── BaseEntity.java
│   │       │   │               │   └── BaseFragment.java
│   │       │   │               ├── constants/
│   │       │   │               │   └── CommonConstants.java
│   │       │   │               ├── entity/
│   │       │   │               │   ├── Comment.java
│   │       │   │               │   ├── DesignRes.java
│   │       │   │               │   ├── FeedBack.java
│   │       │   │               │   └── User.java
│   │       │   │               ├── fragment/
│   │       │   │               │   ├── HomeFragment.java
│   │       │   │               │   └── UserFragment.java
│   │       │   │               ├── net/
│   │       │   │               │   ├── GlideHelper.java
│   │       │   │               │   ├── HttpRequest.java
│   │       │   │               │   └── SimpleSubscriber.java
│   │       │   │               └── utils/
│   │       │   │                   ├── UpdateUtils.java
│   │       │   │                   └── UserInfoKeeper.java
│   │       │   └── res/
│   │       │       ├── anim/
│   │       │       │   └── loading.xml
│   │       │       ├── color/
│   │       │       │   └── txt_blue2gray_sel.xml
│   │       │       ├── drawable/
│   │       │       │   ├── ic_fav_grey2black_sel.xml
│   │       │       │   ├── ic_home_grey2black_sel.xml
│   │       │       │   ├── ic_more_grey2black_sel.xml
│   │       │       │   ├── ic_search_grey2black_sel.xml
│   │       │       │   ├── ic_settings_grey2black_sel.xml
│   │       │       │   └── oval_progress.xml
│   │       │       ├── layout/
│   │       │       │   ├── activity_about.xml
│   │       │       │   ├── activity_feed_back.xml
│   │       │       │   ├── activity_input.xml
│   │       │       │   ├── activity_login.xml
│   │       │       │   ├── activity_main.xml
│   │       │       │   ├── activity_regist.xml
│   │       │       │   ├── activity_register_step1.xml
│   │       │       │   ├── activity_register_step2.xml
│   │       │       │   ├── activity_setting.xml
│   │       │       │   ├── activity_user_info_edit.xml
│   │       │       │   ├── frag_home.xml
│   │       │       │   ├── frag_user.xml
│   │       │       │   ├── include_bottom_tab.xml
│   │       │       │   ├── include_more_header.xml
│   │       │       │   ├── include_more_no_header.xml
│   │       │       │   ├── item_design_res.xml
│   │       │       │   └── item_more_header.xml
│   │       │       ├── values/
│   │       │       │   ├── colors.xml
│   │       │       │   ├── dimens.xml
│   │       │       │   ├── strings.xml
│   │       │       │   └── styles.xml
│   │       │       └── values-w820dp/
│   │       │           └── dimens.xml
│   │       └── test/
│   │           └── java/
│   │               └── com/
│   │                   └── boredream/
│   │                       └── designrescollection/
│   │                           └── ExampleUnitTest.java
│   ├── bdcodehelper/
│   │   ├── README.md
│   │   ├── build.gradle
│   │   ├── proguard-rules.pro
│   │   └── src/
│   │       ├── androidTest/
│   │       │   └── java/
│   │       │       └── com/
│   │       │           └── boredream/
│   │       │               └── bdcodehelper/
│   │       │                   └── ApplicationTest.java
│   │       └── main/
│   │           ├── AndroidManifest.xml
│   │           ├── assets/
│   │           │   └── city
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── boredream/
│   │           │           └── bdcodehelper/
│   │           │               ├── activity/
│   │           │               │   ├── ImageBrowserActivity.java
│   │           │               │   └── WebViewActivity.java
│   │           │               ├── adapter/
│   │           │               │   ├── BannerPagerAdapter.java
│   │           │               │   ├── ImageBrowserAdapter.java
│   │           │               │   ├── ListDropDownAdapter.java
│   │           │               │   ├── LoadMoreAdapter.java
│   │           │               │   └── SettingRecyclerAdapter.java
│   │           │               ├── base/
│   │           │               │   ├── BoreBaseActivity.java
│   │           │               │   └── BoreBaseEntity.java
│   │           │               ├── db/
│   │           │               │   ├── AddressData.java
│   │           │               │   └── AssetsDatabaseManager.java
│   │           │               ├── entity/
│   │           │               │   ├── AppUpdateInfo.java
│   │           │               │   ├── ErrorResponse.java
│   │           │               │   ├── FileUploadResponse.java
│   │           │               │   ├── FormItem.java
│   │           │               │   ├── ImageUrlInterface.java
│   │           │               │   ├── ListResponse.java
│   │           │               │   ├── PageIndex.java
│   │           │               │   ├── Pointer.java
│   │           │               │   ├── Relation.java
│   │           │               │   ├── RelationTo.java
│   │           │               │   ├── SettingItem.java
│   │           │               │   ├── UpdatePswRequest.java
│   │           │               │   ├── Where.java
│   │           │               │   └── city/
│   │           │               │       ├── BaseAddressModel.java
│   │           │               │       └── CityModel.java
│   │           │               ├── fragment/
│   │           │               │   └── FragmentController.java
│   │           │               ├── net/
│   │           │               │   ├── ErrorConstants.java
│   │           │               │   ├── GlideCircleTransform.java
│   │           │               │   ├── MultiPageRequest.java
│   │           │               │   ├── ObservableDecorator.java
│   │           │               │   └── RoundedCornersTransformation.java
│   │           │               ├── present/
│   │           │               │   ├── FormItemsPresent.java
│   │           │               │   ├── GroupEtEmptyCheckPresent.java
│   │           │               │   ├── ImageBannerPresent.java
│   │           │               │   ├── ImageBrowserPresent.java
│   │           │               │   └── MultiPageLoadPresent.java
│   │           │               ├── utils/
│   │           │               │   ├── ActivityUtils.java
│   │           │               │   ├── AppUtils.java
│   │           │               │   ├── DateUtils.java
│   │           │               │   ├── DialogUtils.java
│   │           │               │   ├── DisplayUtils.java
│   │           │               │   ├── ErrorInfoUtils.java
│   │           │               │   ├── ImageUtils.java
│   │           │               │   ├── LogUtils.java
│   │           │               │   ├── NetUtils.java
│   │           │               │   ├── StringUtils.java
│   │           │               │   ├── TitleBuilder.java
│   │           │               │   ├── ToastUtils.java
│   │           │               │   └── ViewUtils.java
│   │           │               └── view/
│   │           │                   ├── AddressWheelDialog.java
│   │           │                   ├── BottomTabRadioButton.java
│   │           │                   ├── CheckableLinearLayout.java
│   │           │                   ├── DividerItemDecoration.java
│   │           │                   ├── DrawableRadioButton.java
│   │           │                   ├── DrawableTextView.java
│   │           │                   ├── DropDownMenu.java
│   │           │                   ├── EmptyItemDecoration.java
│   │           │                   ├── GridSpacingDecorator.java
│   │           │                   ├── PinnedSectionListView.java
│   │           │                   ├── PositionBar.java
│   │           │                   ├── WrapHeightGridView.java
│   │           │                   ├── WrapHeightLinearLayoutManager.java
│   │           │                   ├── WrapHeightListView.java
│   │           │                   └── wheel/
│   │           │                       ├── ItemsRange.java
│   │           │                       ├── OnWheelChangedListener.java
│   │           │                       ├── OnWheelClickedListener.java
│   │           │                       ├── OnWheelScrollListener.java
│   │           │                       ├── WheelAdapter.java
│   │           │                       ├── WheelRecycle.java
│   │           │                       ├── WheelScroller.java
│   │           │                       ├── WheelView.java
│   │           │                       └── adapters/
│   │           │                           ├── AbstractWheelAdapter.java
│   │           │                           ├── AbstractWheelTextAdapter.java
│   │           │                           ├── AdapterWheel.java
│   │           │                           ├── ArrayWheelAdapter.java
│   │           │                           ├── NumericWheelAdapter.java
│   │           │                           └── WheelViewAdapter.java
│   │           ├── libs/
│   │           │   └── nineoldandroids-2.2.0.jar
│   │           └── res/
│   │               ├── anim/
│   │               │   ├── dd_mask_in.xml
│   │               │   ├── dd_mask_out.xml
│   │               │   ├── dd_menu_in.xml
│   │               │   └── dd_menu_out.xml
│   │               ├── color/
│   │               │   ├── txt_blue2gray_sel.xml
│   │               │   ├── txt_gray2primarydark_sel.xml
│   │               │   ├── txt_lgray2white_sel.xml
│   │               │   ├── txt_primary2white_sel.xml
│   │               │   └── txt_white2gray_sel.xml
│   │               ├── drawable/
│   │               │   ├── bg_gray2dark_sel.xml
│   │               │   ├── bg_primary2dark_sel.xml
│   │               │   ├── bg_primarydark_indicator_sel.xml
│   │               │   ├── bg_tran2gray_sel.xml
│   │               │   ├── bg_white2gray_sel.xml
│   │               │   ├── cirrect_10a_primary_solid.xml
│   │               │   ├── cirrect_5a_primary_solid.xml
│   │               │   ├── cirrect_primary_stroke.xml
│   │               │   ├── correct_gray_stroke.xml
│   │               │   ├── correct_primary.xml
│   │               │   ├── correct_primary2dark_sel.xml
│   │               │   ├── correct_primary_dark.xml
│   │               │   ├── correct_primary_light.xml
│   │               │   ├── correct_primary_stroke.xml
│   │               │   ├── correct_primary_stroke2solid_sel.xml
│   │               │   ├── layerlist_primarydark_indicator.xml
│   │               │   ├── oval_primary_light_solid.xml
│   │               │   ├── oval_primary_solid.xml
│   │               │   ├── shape_bottom_line.xml
│   │               │   ├── shape_oval_primary2white_sel.xml
│   │               │   ├── shape_oval_primary_stroke.xml
│   │               │   ├── shape_oval_primary_stroke2solid_sel.xml
│   │               │   ├── shape_oval_red_solid.xml
│   │               │   ├── shape_oval_white_solid.xml
│   │               │   ├── shape_top_line.xml
│   │               │   ├── wheel_bg.xml
│   │               │   └── wheel_val.xml
│   │               ├── layout/
│   │               │   ├── activity_image_browser.xml
│   │               │   ├── activity_web_view.xml
│   │               │   ├── footer_progress.xml
│   │               │   ├── formitem_input.xml
│   │               │   ├── formitem_select.xml
│   │               │   ├── include_banner_with_indicator.xml
│   │               │   ├── include_ddm_listview.xml
│   │               │   ├── include_group_divider.xml
│   │               │   ├── include_refresh_list.xml
│   │               │   ├── include_titlebar.xml
│   │               │   ├── item_default_drop_down.xml
│   │               │   ├── item_image_banner.xml
│   │               │   ├── item_image_browser.xml
│   │               │   ├── item_setting.xml
│   │               │   ├── listview_dropdown_menu.xml
│   │               │   └── wheel_dialog_address.xml
│   │               └── values/
│   │                   ├── attrs.xml
│   │                   ├── colors.xml
│   │                   ├── dimens.xml
│   │                   ├── strings.xml
│   │                   └── styles.xml
│   ├── build.gradle
│   ├── gradle/
│   │   └── wrapper/
│   │       ├── gradle-wrapper.jar
│   │       └── gradle-wrapper.properties
│   ├── gradle.properties
│   ├── gradlew
│   ├── gradlew.bat
│   └── settings.gradle
├── DesignResCollection_MVP/
│   ├── README.md
│   ├── app/
│   │   ├── build.gradle
│   │   ├── proguard.cfg
│   │   └── src/
│   │       ├── androidTest/
│   │       │   └── java/
│   │       │       └── com/
│   │       │           └── boredream/
│   │       │               └── designrescollection/
│   │       │                   ├── ApplicationTest.java
│   │       │                   ├── idlingres/
│   │       │                   │   └── RxIdlingResource.java
│   │       │                   └── ui/
│   │       │                       ├── login/
│   │       │                       │   └── LoginActivityTest.java
│   │       │                       └── userinfoedit/
│   │       │                           └── UserInfoEditActivityTest.java
│   │       ├── main/
│   │       │   ├── AndroidManifest.xml
│   │       │   ├── java/
│   │       │   │   └── com/
│   │       │   │       └── boredream/
│   │       │   │           └── designrescollection/
│   │       │   │               ├── adapter/
│   │       │   │               │   ├── DesignResAdapter.java
│   │       │   │               │   └── MoreRecyclerAdapter.java
│   │       │   │               ├── base/
│   │       │   │               │   ├── BaseActivity.java
│   │       │   │               │   ├── BaseApplication.java
│   │       │   │               │   ├── BaseEntity.java
│   │       │   │               │   ├── BaseFragment.java
│   │       │   │               │   ├── BasePresenter.java
│   │       │   │               │   └── BaseView.java
│   │       │   │               ├── constants/
│   │       │   │               │   └── CommonConstants.java
│   │       │   │               ├── entity/
│   │       │   │               │   ├── Comment.java
│   │       │   │               │   ├── DesignRes.java
│   │       │   │               │   ├── FeedBack.java
│   │       │   │               │   └── User.java
│   │       │   │               ├── net/
│   │       │   │               │   ├── GlideHelper.java
│   │       │   │               │   ├── HttpRequest.java
│   │       │   │               │   └── SimpleSubscriber.java
│   │       │   │               ├── ui/
│   │       │   │               │   ├── AboutActivity.java
│   │       │   │               │   ├── MainActivity.java
│   │       │   │               │   ├── SettingActivity.java
│   │       │   │               │   ├── UserFragment.java
│   │       │   │               │   ├── feedback/
│   │       │   │               │   │   ├── FeedBackActivity.java
│   │       │   │               │   │   ├── FeedBackContract.java
│   │       │   │               │   │   └── FeedBackPresenter.java
│   │       │   │               │   ├── home/
│   │       │   │               │   │   ├── HomeContract.java
│   │       │   │               │   │   ├── HomeFragment.java
│   │       │   │               │   │   └── HomePresenter.java
│   │       │   │               │   ├── login/
│   │       │   │               │   │   ├── LoginActivity.java
│   │       │   │               │   │   ├── LoginContract.java
│   │       │   │               │   │   ├── LoginFragment.java
│   │       │   │               │   │   └── LoginPresenter.java
│   │       │   │               │   ├── modifytext/
│   │       │   │               │   │   ├── ModifyTextActivity.java
│   │       │   │               │   │   ├── ModifyTextContract.java
│   │       │   │               │   │   └── ModifyTextPresenter.java
│   │       │   │               │   ├── register/
│   │       │   │               │   │   ├── RegisterContract.java
│   │       │   │               │   │   ├── RegisterPresenter.java
│   │       │   │               │   │   ├── RegisterStep1Activity.java
│   │       │   │               │   │   └── RegisterStep2Activity.java
│   │       │   │               │   └── userinfoedit/
│   │       │   │               │       ├── UserInfoEditActivity.java
│   │       │   │               │       ├── UserInfoEditContract.java
│   │       │   │               │       └── UserInfoEditPresenter.java
│   │       │   │               └── utils/
│   │       │   │                   ├── UpdateUtils.java
│   │       │   │                   └── UserInfoKeeper.java
│   │       │   └── res/
│   │       │       ├── anim/
│   │       │       │   └── loading.xml
│   │       │       ├── color/
│   │       │       │   └── txt_blue2gray_sel.xml
│   │       │       ├── drawable/
│   │       │       │   ├── ic_fav_grey2black_sel.xml
│   │       │       │   ├── ic_home_grey2black_sel.xml
│   │       │       │   ├── ic_more_grey2black_sel.xml
│   │       │       │   ├── ic_search_grey2black_sel.xml
│   │       │       │   ├── ic_settings_grey2black_sel.xml
│   │       │       │   └── oval_progress.xml
│   │       │       ├── layout/
│   │       │       │   ├── activity_about.xml
│   │       │       │   ├── activity_feed_back.xml
│   │       │       │   ├── activity_input.xml
│   │       │       │   ├── activity_login.xml
│   │       │       │   ├── activity_main.xml
│   │       │       │   ├── activity_regist.xml
│   │       │       │   ├── activity_register_step1.xml
│   │       │       │   ├── activity_register_step2.xml
│   │       │       │   ├── activity_setting.xml
│   │       │       │   ├── activity_user_info_edit.xml
│   │       │       │   ├── frag_home.xml
│   │       │       │   ├── frag_login.xml
│   │       │       │   ├── frag_user.xml
│   │       │       │   ├── include_bottom_tab.xml
│   │       │       │   ├── include_more_header.xml
│   │       │       │   ├── include_more_no_header.xml
│   │       │       │   ├── item_design_res.xml
│   │       │       │   └── item_more_header.xml
│   │       │       ├── menu/
│   │       │       │   └── menu_main2.xml
│   │       │       ├── values/
│   │       │       │   ├── colors.xml
│   │       │       │   ├── dimens.xml
│   │       │       │   ├── strings.xml
│   │       │       │   └── styles.xml
│   │       │       └── values-w820dp/
│   │       │           └── dimens.xml
│   │       └── test/
│   │           └── java/
│   │               └── com/
│   │                   └── boredream/
│   │                       └── designrescollection/
│   │                           ├── net/
│   │                           │   └── HttpRequestTest.java
│   │                           └── ui/
│   │                               ├── feedback/
│   │                               │   └── FeedBackPresenterTest.java
│   │                               ├── home/
│   │                               │   └── HomePresenterTest.java
│   │                               ├── login/
│   │                               │   └── LoginPresenterTest.java
│   │                               ├── modifytext/
│   │                               │   └── ModifyTextPresenterTest.java
│   │                               ├── register/
│   │                               │   └── RegisterPresenterTest.java
│   │                               └── userinfoedit/
│   │                                   └── UserInfoEditPresenterTest.java
│   ├── bdcodehelper/
│   │   ├── README.md
│   │   ├── build.gradle
│   │   ├── proguard-rules.pro
│   │   └── src/
│   │       └── main/
│   │           ├── AndroidManifest.xml
│   │           ├── assets/
│   │           │   └── city
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── boredream/
│   │           │           └── bdcodehelper/
│   │           │               ├── BoreConstants.java
│   │           │               ├── activity/
│   │           │               │   ├── ImageBrowserActivity.java
│   │           │               │   └── WebViewActivity.java
│   │           │               ├── adapter/
│   │           │               │   ├── BannerPagerAdapter.java
│   │           │               │   ├── ImageBrowserAdapter.java
│   │           │               │   ├── ListDropDownAdapter.java
│   │           │               │   ├── LoadMoreAdapter.java
│   │           │               │   └── SettingRecyclerAdapter.java
│   │           │               ├── base/
│   │           │               │   ├── BoreBaseActivity.java
│   │           │               │   └── BoreBaseEntity.java
│   │           │               ├── db/
│   │           │               │   ├── AddressData.java
│   │           │               │   └── AssetsDatabaseManager.java
│   │           │               ├── entity/
│   │           │               │   ├── AppUpdateInfo.java
│   │           │               │   ├── ErrorResponse.java
│   │           │               │   ├── FileInfo.java
│   │           │               │   ├── FileUploadResponse.java
│   │           │               │   ├── FormItem.java
│   │           │               │   ├── ImageUrlInterface.java
│   │           │               │   ├── ListResponse.java
│   │           │               │   ├── PageIndex.java
│   │           │               │   ├── Pointer.java
│   │           │               │   ├── Relation.java
│   │           │               │   ├── RelationTo.java
│   │           │               │   ├── SettingItem.java
│   │           │               │   ├── UpdatePswRequest.java
│   │           │               │   ├── Where.java
│   │           │               │   └── city/
│   │           │               │       ├── BaseAddressModel.java
│   │           │               │       └── CityModel.java
│   │           │               ├── fragment/
│   │           │               │   └── FragmentController.java
│   │           │               ├── net/
│   │           │               │   ├── ErrorConstants.java
│   │           │               │   ├── GlideCircleTransform.java
│   │           │               │   ├── MultiPageRequest.java
│   │           │               │   ├── ObservableDecorator.java
│   │           │               │   └── RoundedCornersTransformation.java
│   │           │               ├── present/
│   │           │               │   ├── FormItemsPresent.java
│   │           │               │   ├── GroupEtEmptyCheckPresent.java
│   │           │               │   ├── ImageBannerPresent.java
│   │           │               │   ├── ImageBrowserPresent.java
│   │           │               │   └── MultiPageLoadPresent.java
│   │           │               ├── utils/
│   │           │               │   ├── ActivityUtils.java
│   │           │               │   ├── AppUtils.java
│   │           │               │   ├── DateUtils.java
│   │           │               │   ├── DialogUtils.java
│   │           │               │   ├── DisplayUtils.java
│   │           │               │   ├── ErrorInfoUtils.java
│   │           │               │   ├── ImageUtils.java
│   │           │               │   ├── LogUtils.java
│   │           │               │   ├── NetUtils.java
│   │           │               │   ├── StringUtils.java
│   │           │               │   ├── TitleBuilder.java
│   │           │               │   ├── ToastUtils.java
│   │           │               │   └── ViewUtils.java
│   │           │               └── view/
│   │           │                   ├── AddressWheelDialog.java
│   │           │                   ├── BottomTabRadioButton.java
│   │           │                   ├── CheckableLinearLayout.java
│   │           │                   ├── DividerItemDecoration.java
│   │           │                   ├── DrawableRadioButton.java
│   │           │                   ├── DrawableTextView.java
│   │           │                   ├── DropDownMenu.java
│   │           │                   ├── EmptyItemDecoration.java
│   │           │                   ├── GridSpacingDecorator.java
│   │           │                   ├── PinnedSectionListView.java
│   │           │                   ├── PositionBar.java
│   │           │                   ├── WrapHeightGridView.java
│   │           │                   ├── WrapHeightLinearLayoutManager.java
│   │           │                   ├── WrapHeightListView.java
│   │           │                   └── wheel/
│   │           │                       ├── ItemsRange.java
│   │           │                       ├── OnWheelChangedListener.java
│   │           │                       ├── OnWheelClickedListener.java
│   │           │                       ├── OnWheelScrollListener.java
│   │           │                       ├── WheelAdapter.java
│   │           │                       ├── WheelRecycle.java
│   │           │                       ├── WheelScroller.java
│   │           │                       ├── WheelView.java
│   │           │                       └── adapters/
│   │           │                           ├── AbstractWheelAdapter.java
│   │           │                           ├── AbstractWheelTextAdapter.java
│   │           │                           ├── AdapterWheel.java
│   │           │                           ├── ArrayWheelAdapter.java
│   │           │                           ├── NumericWheelAdapter.java
│   │           │                           └── WheelViewAdapter.java
│   │           ├── libs/
│   │           │   └── nineoldandroids-2.2.0.jar
│   │           └── res/
│   │               ├── anim/
│   │               │   ├── dd_mask_in.xml
│   │               │   ├── dd_mask_out.xml
│   │               │   ├── dd_menu_in.xml
│   │               │   └── dd_menu_out.xml
│   │               ├── color/
│   │               │   ├── txt_blue2gray_sel.xml
│   │               │   ├── txt_gray2primarydark_sel.xml
│   │               │   ├── txt_lgray2white_sel.xml
│   │               │   ├── txt_primary2white_sel.xml
│   │               │   └── txt_white2gray_sel.xml
│   │               ├── drawable/
│   │               │   ├── bg_gray2dark_sel.xml
│   │               │   ├── bg_primary2dark_sel.xml
│   │               │   ├── bg_primarydark_indicator_sel.xml
│   │               │   ├── bg_tran2gray_sel.xml
│   │               │   ├── bg_white2gray_sel.xml
│   │               │   ├── cirrect_10a_primary_solid.xml
│   │               │   ├── cirrect_5a_primary_solid.xml
│   │               │   ├── cirrect_primary_stroke.xml
│   │               │   ├── correct_gray_stroke.xml
│   │               │   ├── correct_primary.xml
│   │               │   ├── correct_primary2dark_sel.xml
│   │               │   ├── correct_primary_dark.xml
│   │               │   ├── correct_primary_light.xml
│   │               │   ├── correct_primary_stroke.xml
│   │               │   ├── correct_primary_stroke2solid_sel.xml
│   │               │   ├── layerlist_primarydark_indicator.xml
│   │               │   ├── oval_primary_light_solid.xml
│   │               │   ├── oval_primary_solid.xml
│   │               │   ├── shape_bottom_line.xml
│   │               │   ├── shape_oval_primary2white_sel.xml
│   │               │   ├── shape_oval_primary_stroke.xml
│   │               │   ├── shape_oval_primary_stroke2solid_sel.xml
│   │               │   ├── shape_oval_red_solid.xml
│   │               │   ├── shape_oval_white_solid.xml
│   │               │   ├── shape_top_line.xml
│   │               │   ├── wheel_bg.xml
│   │               │   └── wheel_val.xml
│   │               ├── layout/
│   │               │   ├── activity_image_browser.xml
│   │               │   ├── activity_web_view.xml
│   │               │   ├── footer_progress.xml
│   │               │   ├── formitem_input.xml
│   │               │   ├── formitem_select.xml
│   │               │   ├── include_banner_with_indicator.xml
│   │               │   ├── include_ddm_listview.xml
│   │               │   ├── include_group_divider.xml
│   │               │   ├── include_refresh_list.xml
│   │               │   ├── include_titlebar.xml
│   │               │   ├── item_default_drop_down.xml
│   │               │   ├── item_image_banner.xml
│   │               │   ├── item_image_browser.xml
│   │               │   ├── item_setting.xml
│   │               │   ├── listview_dropdown_menu.xml
│   │               │   └── wheel_dialog_address.xml
│   │               └── values/
│   │                   ├── attrs.xml
│   │                   ├── colors.xml
│   │                   ├── dimens.xml
│   │                   ├── strings.xml
│   │                   └── styles.xml
│   ├── build.gradle
│   ├── gradle/
│   │   └── wrapper/
│   │       ├── gradle-wrapper.jar
│   │       └── gradle-wrapper.properties
│   ├── gradle.properties
│   ├── gradlew
│   ├── gradlew.bat
│   └── settings.gradle
├── DesignResCollection_MVP-Dagger2/
│   ├── README.md
│   ├── app/
│   │   ├── build.gradle
│   │   ├── proguard.cfg
│   │   └── src/
│   │       ├── androidTest/
│   │       │   └── java/
│   │       │       └── com/
│   │       │           └── boredream/
│   │       │               └── designrescollection/
│   │       │                   ├── ApplicationTest.java
│   │       │                   ├── idlingres/
│   │       │                   │   └── RxIdlingResource.java
│   │       │                   └── ui/
│   │       │                       ├── login/
│   │       │                       │   └── LoginActivityTest.java
│   │       │                       └── userinfoedit/
│   │       │                           └── UserInfoEditActivityTest.java
│   │       ├── main/
│   │       │   ├── AndroidManifest.xml
│   │       │   ├── java/
│   │       │   │   └── com/
│   │       │   │       └── boredream/
│   │       │   │           └── designrescollection/
│   │       │   │               ├── adapter/
│   │       │   │               │   ├── DesignResAdapter.java
│   │       │   │               │   └── MoreRecyclerAdapter.java
│   │       │   │               ├── base/
│   │       │   │               │   ├── BaseActivity.java
│   │       │   │               │   ├── BaseApplication.java
│   │       │   │               │   ├── BaseEntity.java
│   │       │   │               │   ├── BaseFragment.java
│   │       │   │               │   ├── BasePresenter.java
│   │       │   │               │   └── BaseView.java
│   │       │   │               ├── constants/
│   │       │   │               │   └── CommonConstants.java
│   │       │   │               ├── entity/
│   │       │   │               │   ├── Comment.java
│   │       │   │               │   ├── DesignRes.java
│   │       │   │               │   ├── FeedBack.java
│   │       │   │               │   └── User.java
│   │       │   │               ├── net/
│   │       │   │               │   ├── ApiModule.java
│   │       │   │               │   ├── ApiService.java
│   │       │   │               │   ├── AppComponent.java
│   │       │   │               │   ├── GlideHelper.java
│   │       │   │               │   └── SimpleSubscriber.java
│   │       │   │               ├── ui/
│   │       │   │               │   ├── AboutActivity.java
│   │       │   │               │   ├── MainActivity.java
│   │       │   │               │   ├── SettingActivity.java
│   │       │   │               │   ├── UserFragment.java
│   │       │   │               │   ├── feedback/
│   │       │   │               │   │   ├── FeedBackActivity.java
│   │       │   │               │   │   ├── FeedBackContract.java
│   │       │   │               │   │   └── FeedBackPresenter.java
│   │       │   │               │   ├── home/
│   │       │   │               │   │   ├── HomeContract.java
│   │       │   │               │   │   ├── HomeFragment.java
│   │       │   │               │   │   └── HomePresenter.java
│   │       │   │               │   ├── login/
│   │       │   │               │   │   ├── LoginActivity.java
│   │       │   │               │   │   ├── LoginComponent.java
│   │       │   │               │   │   ├── LoginContract.java
│   │       │   │               │   │   ├── LoginFragment.java
│   │       │   │               │   │   ├── LoginPresenter.java
│   │       │   │               │   │   └── LoginPresenterModule.java
│   │       │   │               │   ├── modifytext/
│   │       │   │               │   │   ├── ModifyTextActivity.java
│   │       │   │               │   │   ├── ModifyTextContract.java
│   │       │   │               │   │   └── ModifyTextPresenter.java
│   │       │   │               │   ├── register/
│   │       │   │               │   │   ├── RegisterContract.java
│   │       │   │               │   │   ├── RegisterPresenter.java
│   │       │   │               │   │   ├── RegisterStep1Activity.java
│   │       │   │               │   │   └── RegisterStep2Activity.java
│   │       │   │               │   └── userinfoedit/
│   │       │   │               │       ├── UserInfoEditActivity.java
│   │       │   │               │       ├── UserInfoEditContract.java
│   │       │   │               │       └── UserInfoEditPresenter.java
│   │       │   │               └── utils/
│   │       │   │                   ├── PerActivity.java
│   │       │   │                   ├── PerApplication.java
│   │       │   │                   ├── UpdateUtils.java
│   │       │   │                   └── UserInfoKeeper.java
│   │       │   └── res/
│   │       │       ├── anim/
│   │       │       │   └── loading.xml
│   │       │       ├── color/
│   │       │       │   └── txt_blue2gray_sel.xml
│   │       │       ├── drawable/
│   │       │       │   ├── ic_fav_grey2black_sel.xml
│   │       │       │   ├── ic_home_grey2black_sel.xml
│   │       │       │   ├── ic_more_grey2black_sel.xml
│   │       │       │   ├── ic_search_grey2black_sel.xml
│   │       │       │   ├── ic_settings_grey2black_sel.xml
│   │       │       │   └── oval_progress.xml
│   │       │       ├── layout/
│   │       │       │   ├── activity_about.xml
│   │       │       │   ├── activity_feed_back.xml
│   │       │       │   ├── activity_input.xml
│   │       │       │   ├── activity_login.xml
│   │       │       │   ├── activity_main.xml
│   │       │       │   ├── activity_regist.xml
│   │       │       │   ├── activity_register_step1.xml
│   │       │       │   ├── activity_register_step2.xml
│   │       │       │   ├── activity_setting.xml
│   │       │       │   ├── activity_user_info_edit.xml
│   │       │       │   ├── frag_home.xml
│   │       │       │   ├── frag_login.xml
│   │       │       │   ├── frag_user.xml
│   │       │       │   ├── include_bottom_tab.xml
│   │       │       │   ├── include_more_header.xml
│   │       │       │   ├── include_more_no_header.xml
│   │       │       │   ├── item_design_res.xml
│   │       │       │   └── item_more_header.xml
│   │       │       ├── menu/
│   │       │       │   └── menu_main2.xml
│   │       │       ├── values/
│   │       │       │   ├── colors.xml
│   │       │       │   ├── dimens.xml
│   │       │       │   ├── strings.xml
│   │       │       │   └── styles.xml
│   │       │       └── values-w820dp/
│   │       │           └── dimens.xml
│   │       └── test/
│   │           └── java/
│   │               └── com/
│   │                   └── boredream/
│   │                       └── designrescollection/
│   │                           ├── net/
│   │                           │   └── HttpRequestTest.java
│   │                           └── ui/
│   │                               ├── feedback/
│   │                               │   └── FeedBackPresenterTest.java
│   │                               ├── home/
│   │                               │   └── HomePresenterTest.java
│   │                               ├── login/
│   │                               │   └── LoginPresenterTest.java
│   │                               ├── modifytext/
│   │                               │   └── ModifyTextPresenterTest.java
│   │                               ├── register/
│   │                               │   └── RegisterPresenterTest.java
│   │                               └── userinfoedit/
│   │                                   └── UserInfoEditPresenterTest.java
│   ├── bdcodehelper/
│   │   ├── README.md
│   │   ├── build.gradle
│   │   ├── proguard-rules.pro
│   │   └── src/
│   │       └── main/
│   │           ├── AndroidManifest.xml
│   │           ├── assets/
│   │           │   └── city
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── boredream/
│   │           │           └── bdcodehelper/
│   │           │               ├── BoreConstants.java
│   │           │               ├── activity/
│   │           │               │   ├── ImageBrowserActivity.java
│   │           │               │   └── WebViewActivity.java
│   │           │               ├── adapter/
│   │           │               │   ├── BannerPagerAdapter.java
│   │           │               │   ├── ImageBrowserAdapter.java
│   │           │               │   ├── ListDropDownAdapter.java
│   │           │               │   ├── LoadMoreAdapter.java
│   │           │               │   └── SettingRecyclerAdapter.java
│   │           │               ├── base/
│   │           │               │   ├── BoreBaseActivity.java
│   │           │               │   └── BoreBaseEntity.java
│   │           │               ├── db/
│   │           │               │   ├── AddressData.java
│   │           │               │   └── AssetsDatabaseManager.java
│   │           │               ├── entity/
│   │           │               │   ├── AppUpdateInfo.java
│   │           │               │   ├── ErrorResponse.java
│   │           │               │   ├── FileInfo.java
│   │           │               │   ├── FileUploadResponse.java
│   │           │               │   ├── FormItem.java
│   │           │               │   ├── ImageUrlInterface.java
│   │           │               │   ├── ListResponse.java
│   │           │               │   ├── PageIndex.java
│   │           │               │   ├── Pointer.java
│   │           │               │   ├── Relation.java
│   │           │               │   ├── RelationTo.java
│   │           │               │   ├── SettingItem.java
│   │           │               │   ├── UpdatePswRequest.java
│   │           │               │   ├── Where.java
│   │           │               │   └── city/
│   │           │               │       ├── BaseAddressModel.java
│   │           │               │       └── CityModel.java
│   │           │               ├── fragment/
│   │           │               │   └── FragmentController.java
│   │           │               ├── net/
│   │           │               │   ├── ErrorConstants.java
│   │           │               │   ├── GlideCircleTransform.java
│   │           │               │   ├── MultiPageRequest.java
│   │           │               │   ├── ObservableDecorator.java
│   │           │               │   └── RoundedCornersTransformation.java
│   │           │               ├── present/
│   │           │               │   ├── FormItemsPresent.java
│   │           │               │   ├── GroupEtEmptyCheckPresent.java
│   │           │               │   ├── ImageBannerPresent.java
│   │           │               │   ├── ImageBrowserPresent.java
│   │           │               │   └── MultiPageLoadPresent.java
│   │           │               ├── utils/
│   │           │               │   ├── ActivityUtils.java
│   │           │               │   ├── AppUtils.java
│   │           │               │   ├── DateUtils.java
│   │           │               │   ├── DialogUtils.java
│   │           │               │   ├── DisplayUtils.java
│   │           │               │   ├── ErrorInfoUtils.java
│   │           │               │   ├── ImageUtils.java
│   │           │               │   ├── LogUtils.java
│   │           │               │   ├── NetUtils.java
│   │           │               │   ├── StringUtils.java
│   │           │               │   ├── TitleBuilder.java
│   │           │               │   ├── ToastUtils.java
│   │           │               │   └── ViewUtils.java
│   │           │               └── view/
│   │           │                   ├── AddressWheelDialog.java
│   │           │                   ├── BottomTabRadioButton.java
│   │           │                   ├── CheckableLinearLayout.java
│   │           │                   ├── DividerItemDecoration.java
│   │           │                   ├── DrawableRadioButton.java
│   │           │                   ├── DrawableTextView.java
│   │           │                   ├── DropDownMenu.java
│   │           │                   ├── EmptyItemDecoration.java
│   │           │                   ├── GridSpacingDecorator.java
│   │           │                   ├── PinnedSectionListView.java
│   │           │                   ├── PositionBar.java
│   │           │                   ├── WrapHeightGridView.java
│   │           │                   ├── WrapHeightLinearLayoutManager.java
│   │           │                   ├── WrapHeightListView.java
│   │           │                   └── wheel/
│   │           │                       ├── ItemsRange.java
│   │           │                       ├── OnWheelChangedListener.java
│   │           │                       ├── OnWheelClickedListener.java
│   │           │                       ├── OnWheelScrollListener.java
│   │           │                       ├── WheelAdapter.java
│   │           │                       ├── WheelRecycle.java
│   │           │                       ├── WheelScroller.java
│   │           │                       ├── WheelView.java
│   │           │                       └── adapters/
│   │           │                           ├── AbstractWheelAdapter.java
│   │           │                           ├── AbstractWheelTextAdapter.java
│   │           │                           ├── AdapterWheel.java
│   │           │                           ├── ArrayWheelAdapter.java
│   │           │                           ├── NumericWheelAdapter.java
│   │           │                           └── WheelViewAdapter.java
│   │           ├── libs/
│   │           │   └── nineoldandroids-2.2.0.jar
│   │           └── res/
│   │               ├── anim/
│   │               │   ├── dd_mask_in.xml
│   │               │   ├── dd_mask_out.xml
│   │               │   ├── dd_menu_in.xml
│   │               │   └── dd_menu_out.xml
│   │               ├── color/
│   │               │   ├── txt_blue2gray_sel.xml
│   │               │   ├── txt_gray2primarydark_sel.xml
│   │               │   ├── txt_lgray2white_sel.xml
│   │               │   ├── txt_primary2white_sel.xml
│   │               │   └── txt_white2gray_sel.xml
│   │               ├── drawable/
│   │               │   ├── bg_gray2dark_sel.xml
│   │               │   ├── bg_primary2dark_sel.xml
│   │               │   ├── bg_primarydark_indicator_sel.xml
│   │               │   ├── bg_tran2gray_sel.xml
│   │               │   ├── bg_white2gray_sel.xml
│   │               │   ├── cirrect_10a_primary_solid.xml
│   │               │   ├── cirrect_5a_primary_solid.xml
│   │               │   ├── cirrect_primary_stroke.xml
│   │               │   ├── correct_gray_stroke.xml
│   │               │   ├── correct_primary.xml
│   │               │   ├── correct_primary2dark_sel.xml
│   │               │   ├── correct_primary_dark.xml
│   │               │   ├── correct_primary_light.xml
│   │               │   ├── correct_primary_stroke.xml
│   │               │   ├── correct_primary_stroke2solid_sel.xml
│   │               │   ├── layerlist_primarydark_indicator.xml
│   │               │   ├── oval_primary_light_solid.xml
│   │               │   ├── oval_primary_solid.xml
│   │               │   ├── shape_bottom_line.xml
│   │               │   ├── shape_oval_primary2white_sel.xml
│   │               │   ├── shape_oval_primary_stroke.xml
│   │               │   ├── shape_oval_primary_stroke2solid_sel.xml
│   │               │   ├── shape_oval_red_solid.xml
│   │               │   ├── shape_oval_white_solid.xml
│   │               │   ├── shape_top_line.xml
│   │               │   ├── wheel_bg.xml
│   │               │   └── wheel_val.xml
│   │               ├── layout/
│   │               │   ├── activity_image_browser.xml
│   │               │   ├── activity_web_view.xml
│   │               │   ├── footer_progress.xml
│   │               │   ├── formitem_input.xml
│   │               │   ├── formitem_select.xml
│   │               │   ├── include_banner_with_indicator.xml
│   │               │   ├── include_ddm_listview.xml
│   │               │   ├── include_group_divider.xml
│   │               │   ├── include_refresh_list.xml
│   │               │   ├── include_titlebar.xml
│   │               │   ├── item_default_drop_down.xml
│   │               │   ├── item_image_banner.xml
│   │               │   ├── item_image_browser.xml
│   │               │   ├── item_setting.xml
│   │               │   ├── listview_dropdown_menu.xml
│   │               │   └── wheel_dialog_address.xml
│   │               └── values/
│   │                   ├── attrs.xml
│   │                   ├── colors.xml
│   │                   ├── dimens.xml
│   │                   ├── strings.xml
│   │                   └── styles.xml
│   ├── build.gradle
│   ├── gradle/
│   │   └── wrapper/
│   │       ├── gradle-wrapper.jar
│   │       └── gradle-wrapper.properties
│   ├── gradle.properties
│   ├── gradlew
│   ├── gradlew.bat
│   └── settings.gradle
└── README.md
Download .txt
Showing preview only (258K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (2801 symbols across 378 files)

FILE: DesignResCollection_MVC/app/src/androidTest/java/com/boredream/designrescollection/ApplicationTest.java
  class ApplicationTest (line 9) | public class ApplicationTest extends ApplicationTestCase<Application> {
    method ApplicationTest (line 10) | public ApplicationTest() {

FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/activity/AboutActivity.java
  class AboutActivity (line 17) | public class AboutActivity extends BaseActivity {
    method onCreate (line 22) | @Override
    method initView (line 29) | private void initView() {
    method getAboutString (line 42) | private SpannableString getAboutString() {

FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/activity/FeedBackActivity.java
  class FeedBackActivity (line 20) | public class FeedBackActivity extends BaseActivity {
    method onCreate (line 25) | @Override
    method initView (line 34) | private void initView() {
    method submit (line 49) | private void submit() {

FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/activity/LoginActivity.java
  class LoginActivity (line 20) | public class LoginActivity extends BaseActivity implements View.OnClickL...
    method onCreate (line 32) | @Override
    method initExtras (line 41) | private void initExtras() {
    method initView (line 45) | private void initView() {
    method login (line 57) | private void login() {
    method onClick (line 96) | @Override

FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/activity/MainActivity.java
  class MainActivity (line 18) | public class MainActivity extends BaseActivity implements RadioGroup.OnC...
    method onCreate (line 24) | @Override
    method initView (line 33) | private void initView() {
    method initData (line 42) | private void initData() {
    method onCheckedChanged (line 56) | @Override

FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/activity/RegisterStep1Activity.java
  class RegisterStep1Activity (line 17) | public class RegisterStep1Activity extends BaseActivity implements View....
    method onCreate (line 23) | @Override
    method initView (line 31) | private void initView() {
    method next (line 41) | private void next() {
    method toValidateStep2 (line 61) | private void  toValidateStep2(String phone, String password) {
    method onClick (line 68) | @Override

FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/activity/RegisterStep2Activity.java
  class RegisterStep2Activity (line 29) | public class RegisterStep2Activity extends BaseActivity implements View....
    method onCreate (line 43) | @Override
    method initExtras (line 53) | private void initExtras() {
    method initView (line 59) | private void initView() {
    method initData (line 70) | private void initData() {
    method startCountDown (line 77) | private void startCountDown() {
    method submit (line 105) | private void submit() {
    method register (line 119) | private void register(String code) {
    method showRegistSuccessDialog (line 150) | private void showRegistSuccessDialog() {
    method onClick (line 165) | @Override

FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/activity/SettingActivity.java
  class SettingActivity (line 22) | public class SettingActivity extends BaseActivity implements View.OnClic...
    method onCreate (line 29) | @Override
    method initView (line 37) | private void initView() {
    method initData (line 46) | private void initData() {
    method onItemClick (line 73) | @Override
    method onClick (line 90) | @Override

FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/activity/UserInfoEditActivity.java
  class UserInfoEditActivity (line 28) | public class UserInfoEditActivity extends BaseActivity implements View.O...
    method onCreate (line 37) | @Override
    method onStart (line 45) | @Override
    method initData (line 52) | private void initData() {
    method showUserAvatar (line 58) | private void showUserAvatar() {
    method initView (line 62) | private void initView() {
    method uploadUserAvatarImage (line 79) | private void uploadUserAvatarImage(Uri uri) {
    method uploadUserAvatarImage (line 105) | private void uploadUserAvatarImage(final String avatarUrl) {
    method onClick (line 133) | @Override
    method onActivityResult (line 145) | @Override

FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/activity/UsernameModifyActivity.java
  class UsernameModifyActivity (line 26) | public class UsernameModifyActivity extends BaseActivity {
    method onCreate (line 31) | @Override
    method initView (line 40) | private void initView() {
    method initData (line 52) | private void initData() {
    method submit (line 57) | private void submit() {

FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/adapter/DesignResAdapter.java
  class DesignResAdapter (line 19) | public class DesignResAdapter extends RecyclerView.Adapter<DesignResAdap...
    method DesignResAdapter (line 24) | public DesignResAdapter(Context context, ArrayList<DesignRes> datas) {
    method getItemCount (line 29) | @Override
    class ViewHolder (line 34) | public static class ViewHolder extends RecyclerView.ViewHolder {
      method ViewHolder (line 38) | public ViewHolder(View rootView) {
    method onCreateViewHolder (line 47) | @Override
    method onBindViewHolder (line 53) | @Override

FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/adapter/MoreRecyclerAdapter.java
  class MoreRecyclerAdapter (line 28) | public class MoreRecyclerAdapter extends SettingRecyclerAdapter {
    method MoreRecyclerAdapter (line 34) | public MoreRecyclerAdapter(List<SettingItem> datas, OnItemClickListene...
    method getItemCount (line 38) | @Override
    method getItemViewType (line 44) | @Override
    method setUser (line 49) | public void setUser(User user) {
    class ViewHolderUserHeader (line 53) | public static class ViewHolderUserHeader extends RecyclerView.ViewHold...
      method ViewHolderUserHeader (line 62) | public ViewHolderUserHeader(final View itemView) {
    method onCreateViewHolder (line 73) | @Override
    method onBindViewHolder (line 83) | @Override

FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/base/BaseActivity.java
  class BaseActivity (line 17) | public class BaseActivity extends BoreBaseActivity {
    method onCreate (line 25) | @Override
    method setCouldDoubleBackExit (line 45) | public void setCouldDoubleBackExit(boolean couldDoubleBackExit) {
    method onBackPressed (line 49) | @Override
    method exit (line 80) | protected void exit() {

FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/base/BaseApplication.java
  class BaseApplication (line 14) | public class BaseApplication extends Application {
    method getInstance (line 18) | public static BaseApplication getInstance() {
    method onCreate (line 22) | @Override
    method initGlide (line 34) | private void initGlide() {

FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/base/BaseEntity.java
  class BaseEntity (line 6) | public class BaseEntity extends BoreBaseEntity {
    method equals (line 8) | @Override

FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/base/BaseFragment.java
  class BaseFragment (line 13) | public abstract class BaseFragment extends Fragment {
    method onCreate (line 19) | @Override
    method intent2Activity (line 28) | protected void intent2Activity(Class<? extends Activity> tarActivity) {
    method showToast (line 33) | protected void showToast(String msg) {
    method showLog (line 37) | protected void showLog(String msg) {
    method showProgressDialog (line 41) | protected void showProgressDialog() {
    method dismissProgressDialog (line 45) | protected void dismissProgressDialog() {

FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/constants/CommonConstants.java
  class CommonConstants (line 6) | public class CommonConstants {
    method CommonConstants (line 8) | private CommonConstants() {

FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/entity/Comment.java
  class Comment (line 6) | public class Comment extends BaseEntity {
    method getDesignRes (line 22) | public DesignRes getDesignRes() {
    method setDesignRes (line 26) | public void setDesignRes(DesignRes designRes) {
    method getUser (line 30) | public User getUser() {
    method setUser (line 34) | public void setUser(User user) {
    method getContent (line 38) | public String getContent() {
    method setContent (line 42) | public void setContent(String content) {

FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/entity/DesignRes.java
  class DesignRes (line 9) | public class DesignRes extends BaseEntity {
    method getDesc (line 17) | public String getDesc() {
    method setDesc (line 21) | public void setDesc(String desc) {
    method getSrcTag (line 25) | public String getSrcTag() {
    method setSrcTag (line 29) | public void setSrcTag(String srcTag) {
    method getName (line 33) | public String getName() {
    method setName (line 37) | public void setName(String name) {
    method getImgUrl (line 41) | public String getImgUrl() {
    method setImgUrl (line 45) | public void setImgUrl(String imgUrl) {
    method getSrcLink (line 49) | public String getSrcLink() {
    method setSrcLink (line 53) | public void setSrcLink(String srcLink) {

FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/entity/FeedBack.java
  class FeedBack (line 6) | public class FeedBack extends BaseEntity {
    method getContent (line 11) | public String getContent() {
    method setContent (line 15) | public void setContent(String content) {
    method getEmail (line 19) | public String getEmail() {
    method setEmail (line 23) | public void setEmail(String email) {

FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/entity/User.java
  class User (line 6) | public class User extends BaseEntity {
    method getSessionToken (line 36) | public String getSessionToken() {
    method setSessionToken (line 40) | public void setSessionToken(String sessionToken) {
    method getCompany (line 44) | public String getCompany() {
    method setCompany (line 48) | public void setCompany(String company) {
    method getAvatar (line 52) | public String getAvatar() {
    method setAvatar (line 56) | public void setAvatar(String avatar) {
    method getSmsCode (line 60) | public String getSmsCode() {
    method setSmsCode (line 64) | public void setSmsCode(String smsCode) {
    method getPassword (line 68) | public String getPassword() {
    method setPassword (line 72) | public void setPassword(String password) {
    method getMobilePhoneNumber (line 76) | public String getMobilePhoneNumber() {
    method setMobilePhoneNumber (line 80) | public void setMobilePhoneNumber(String mobilePhoneNumber) {
    method getUsername (line 84) | public String getUsername() {
    method setUsername (line 88) | public void setUsername(String username) {
    method getNickname (line 92) | public String getNickname() {
    method setNickname (line 96) | public void setNickname(String nickname) {

FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/fragment/HomeFragment.java
  class HomeFragment (line 30) | public class HomeFragment extends BaseFragment {
    method onCreateView (line 40) | @Override
    method initView (line 48) | private void initView() {
    method initData (line 75) | private void initData() {
    method loadData (line 80) | private void loadData(final int page) {
    method setResponse (line 107) | private void setResponse(ListResponse<DesignRes> response) {

FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/fragment/UserFragment.java
  class UserFragment (line 27) | public class UserFragment extends BaseFragment implements AdapterView.On...
    method onCreateView (line 32) | @Override
    method onStart (line 40) | @Override
    method initView (line 49) | private void initView(View view) {
    method initData (line 55) | private void initData() {
    method onItemClick (line 85) | @Override

FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/net/GlideHelper.java
  class GlideHelper (line 15) | public class GlideHelper {
    method showAvatar (line 17) | public static void showAvatar(Context context, String avatar, ImageVie...
    method showImage (line 28) | public static void showImage(Context context, String imageUrl, ImageVi...

FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/net/HttpRequest.java
  class HttpRequest (line 47) | public class HttpRequest {
    method getHttpClient (line 62) | public static OkHttpClient getHttpClient() {
    method intercept (line 72) | @Override
    type AppService (line 99) | public interface AppService {
      method login (line 102) | @GET("/1/login")
      method register (line 108) | @POST("/1/users")
      method updateUserById (line 113) | @PUT("/1/users/{objectId}")
      method fileUpload (line 119) | @POST("/1/files/{fileName}")
      method getAppUpdateInfo (line 125) | @GET("/1/classes/AppUpdateInfo")
      method addFeedBack (line 129) | @POST("/1/classes/FeedBack")
      method getDesignRes (line 137) | @GET("/1/classes/DesignRes")
    method getApiService (line 145) | public static AppService getApiService() {
    method getDesignRes (line 154) | public static Observable<ListResponse<DesignRes>> getDesignRes(int pag...
    method getDesignRes (line 167) | public static Observable<ListResponse<DesignRes>> getDesignRes(int pag...
    method login (line 187) | public static Observable<User> login(String username, String password) {
    method fileUpload (line 209) | public static void fileUpload(final Context context, Uri uri, int reqW...

FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/net/SimpleSubscriber.java
  class SimpleSubscriber (line 14) | public class SimpleSubscriber<T> extends Subscriber<T> {
    method SimpleSubscriber (line 18) | public SimpleSubscriber(Context context) {
    method onCompleted (line 22) | @Override
    method onError (line 27) | @Override
    method onNext (line 34) | @Override

FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/utils/UpdateUtils.java
  class UpdateUtils (line 34) | public class UpdateUtils {
    method checkUpdate (line 48) | public static void checkUpdate(final BaseActivity context, final boole...
    method showNoWifiConfirmDialog (line 114) | private static void showNoWifiConfirmDialog(final BaseActivity context...
    method showUpdateConfirmDialog (line 127) | private static void showUpdateConfirmDialog(final BaseActivity context...
    method startDownload (line 156) | private static void startDownload(BaseActivity context, AppUpdateInfo ...
    method getDownloadApkName (line 186) | @NonNull
    method getDownloadStatus (line 198) | private static int getDownloadStatus(BaseActivity context, AppUpdateIn...
    method getDownloadUriById (line 239) | public static Uri getDownloadUriById(Context context, long enqueueId) {

FILE: DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/utils/UserInfoKeeper.java
  class UserInfoKeeper (line 13) | public class UserInfoKeeper {
    method getCurrentUser (line 20) | public static User getCurrentUser() {
    method setCurrentUser (line 27) | public static void setCurrentUser(User user) {
    method clearCurrentUser (line 34) | public static void clearCurrentUser() {
    method getToken (line 38) | public static String getToken() {
    method logout (line 50) | public static void logout() {
    method checkLogin (line 59) | public static boolean checkLogin(Context context) {

FILE: DesignResCollection_MVC/app/src/test/java/com/boredream/designrescollection/ExampleUnitTest.java
  class ExampleUnitTest (line 6) | public class ExampleUnitTest {

FILE: DesignResCollection_MVC/bdcodehelper/src/androidTest/java/com/boredream/bdcodehelper/ApplicationTest.java
  class ApplicationTest (line 6) | public class ApplicationTest extends ApplicationTestCase<Application> {
    method ApplicationTest (line 7) | public ApplicationTest() {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/activity/ImageBrowserActivity.java
  class ImageBrowserActivity (line 16) | public class ImageBrowserActivity extends BoreBaseActivity {
    method onCreate (line 25) | @Override
    method initData (line 36) | private void initData() {
    method initView (line 41) | private void initView() {
    method setData (line 46) | private void setData() {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/activity/WebViewActivity.java
  class WebViewActivity (line 17) | public class WebViewActivity extends BoreBaseActivity {
    method onCreate (line 26) | @Override
    method initView (line 40) | @SuppressLint("SetJavaScriptEnabled")
    class MyWebClient (line 65) | private class MyWebClient extends WebViewClient {
      method onPageStarted (line 67) | @Override
      method onPageFinished (line 72) | @Override
      method shouldOverrideUrlLoading (line 79) | public boolean shouldOverrideUrlLoading(WebView view, String url) {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/adapter/BannerPagerAdapter.java
  class BannerPagerAdapter (line 21) | public class BannerPagerAdapter extends PagerAdapter {
    method BannerPagerAdapter (line 26) | public BannerPagerAdapter(Context context, ArrayList<? extends ImageUr...
    method getCount (line 31) | @Override
    method isViewFromObject (line 39) | @Override
    method destroyItem (line 44) | @Override
    method instantiateItem (line 49) | @Override

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/adapter/ImageBrowserAdapter.java
  class ImageBrowserAdapter (line 23) | public class ImageBrowserAdapter extends PagerAdapter {
    method ImageBrowserAdapter (line 28) | public ImageBrowserAdapter(Activity context, List<? extends ImageUrlIn...
    method getCount (line 33) | @Override
    method isViewFromObject (line 41) | @Override
    method instantiateItem (line 46) | @Override
    method destroyItem (line 100) | @Override

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/adapter/ListDropDownAdapter.java
  class ListDropDownAdapter (line 14) | public class ListDropDownAdapter extends BaseAdapter {
    method setCheckItem (line 20) | public void setCheckItem(int position) {
    method ListDropDownAdapter (line 25) | public ListDropDownAdapter(Context context, List<String> list) {
    method getCount (line 30) | @Override
    method getItem (line 35) | @Override
    method getItemId (line 40) | @Override
    method getView (line 45) | @Override
    method fillValue (line 59) | private void fillValue(int position, ViewHolder viewHolder) {
    class ViewHolder (line 72) | static class ViewHolder {
      method ViewHolder (line 75) | ViewHolder(View view) {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/adapter/LoadMoreAdapter.java
  class LoadMoreAdapter (line 19) | public class LoadMoreAdapter extends RecyclerView.Adapter {
    method LoadMoreAdapter (line 53) | public LoadMoreAdapter(RecyclerView recyclerView,
    method LoadMoreAdapter (line 60) | public LoadMoreAdapter(RecyclerView recyclerView,
    method getSrcAdapter (line 71) | public RecyclerView.Adapter getSrcAdapter() {
    method getStatus (line 75) | public int getStatus() {
    method setStatus (line 79) | public void setStatus(int status) {
    method getItemViewType (line 84) | @Override
    method getItemCount (line 94) | @Override
    class LoadMoreViewHolder (line 100) | public class LoadMoreViewHolder extends RecyclerView.ViewHolder {
      method LoadMoreViewHolder (line 105) | public LoadMoreViewHolder(View itemView) {
    method onCreateViewHolder (line 113) | @Override
    method onBindViewHolder (line 125) | @Override
    method handleFooter (line 137) | private void handleFooter(final LoadMoreViewHolder holder) {
    method setScrollListener (line 187) | private void setScrollListener() {
    method triggerLoadMore (line 224) | private synchronized void triggerLoadMore() {
    method onLoadMore (line 240) | protected void onLoadMore() {
    type OnLoadMoreListener (line 244) | public interface OnLoadMoreListener {
      method onLoadMore (line 245) | void onLoadMore();

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/adapter/SettingRecyclerAdapter.java
  class SettingRecyclerAdapter (line 23) | public class SettingRecyclerAdapter extends RecyclerView.Adapter<Recycle...
    method SettingRecyclerAdapter (line 30) | public SettingRecyclerAdapter(List<SettingItem> datas, AdapterView.OnI...
    method getItemCount (line 35) | @Override
    method getItemViewType (line 40) | @Override
    class ViewHolder (line 45) | public static class ViewHolder extends RecyclerView.ViewHolder {
      method ViewHolder (line 52) | public ViewHolder(final View itemView) {
    method onCreateViewHolder (line 62) | @Override
    method onBindViewHolder (line 68) | @Override

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/base/BoreBaseActivity.java
  class BoreBaseActivity (line 19) | public class BoreBaseActivity extends AppCompatActivity {
    method onCreate (line 24) | @Override
    method init (line 32) | private void init() {
    method initBackTitle (line 43) | protected TitleBuilder initBackTitle(String title) {
    method intent2Activity (line 60) | public void intent2Activity(Class<? extends Activity> tarActivity) {
    method showToast (line 65) | public void showToast(String msg) {
    method showLog (line 69) | public void showLog(String msg) {
    method showProgressDialog (line 73) | public void showProgressDialog() {
    method dismissProgressDialog (line 77) | public void dismissProgressDialog() {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/base/BoreBaseEntity.java
  class BoreBaseEntity (line 13) | public class BoreBaseEntity extends Pointer {
    method getCreatedAt (line 21) | public String getCreatedAt() {
    method setCreatedAt (line 25) | public void setCreatedAt(String createdAt) {
    method getUpdatedAt (line 29) | public String getUpdatedAt() {
    method setUpdatedAt (line 33) | public void setUpdatedAt(String updatedAt) {
    method equals (line 37) | @Override
    method toString (line 46) | @Override

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/db/AddressData.java
  class AddressData (line 15) | public class AddressData {
    method init (line 21) | public static void init(final Context context) {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/db/AssetsDatabaseManager.java
  class AssetsDatabaseManager (line 35) | public class AssetsDatabaseManager {
    method initManager (line 53) | public static void initManager(Context context){
    method getManager (line 63) | public static AssetsDatabaseManager getManager(){
    method AssetsDatabaseManager (line 67) | private AssetsDatabaseManager(Context context){
    method getDatabase (line 76) | public SQLiteDatabase getDatabase(String dbfile) {
    method getDatabaseFilepath (line 112) | private String getDatabaseFilepath(){
    method getDatabaseFile (line 116) | private String getDatabaseFile(String dbfile){
    method copyAssetsToFilesystem (line 120) | private boolean copyAssetsToFilesystem(String assetsSrc, String des){
    method closeDatabase (line 157) | public boolean closeDatabase(String dbfile){
    method closeAllDatabase (line 170) | static public void closeAllDatabase(){

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/AppUpdateInfo.java
  class AppUpdateInfo (line 5) | public class AppUpdateInfo extends BoreBaseEntity {
    method getVersion (line 11) | public int getVersion() {
    method setVersion (line 15) | public void setVersion(int version) {
    method getVersionName (line 19) | public String getVersionName() {
    method setVersionName (line 23) | public void setVersionName(String versionName) {
    method getFileUrl (line 27) | public String getFileUrl() {
    method setFileUrl (line 31) | public void setFileUrl(String fileUrl) {
    method getUpdateInfo (line 35) | public String getUpdateInfo() {
    method setUpdateInfo (line 39) | public void setUpdateInfo(String updateInfo) {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/ErrorResponse.java
  class ErrorResponse (line 3) | public class ErrorResponse {
    method setCode (line 8) | public void setCode(int code) {
    method setError (line 12) | public void setError(String error) {
    method getCode (line 16) | public int getCode() {
    method getError (line 20) | public String getError() {
    method toString (line 24) | @Override

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/FileUploadResponse.java
  class FileUploadResponse (line 3) | public class FileUploadResponse {
    method setFilename (line 8) | public void setFilename(String filename) {
    method setGroup (line 12) | public void setGroup(String group) {
    method setUrl (line 16) | public void setUrl(String url) {
    method getFilename (line 20) | public String getFilename() {
    method getGroup (line 24) | public String getGroup() {
    method getUrl (line 28) | public String getUrl() {
    method equals (line 32) | @Override

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/FormItem.java
  class FormItem (line 5) | public class FormItem {
    method FormItem (line 35) | public FormItem() {
    method getInputItem (line 39) | public static FormItem getInputItem(String leftText, String hint) {
    method getInputItem (line 43) | public static FormItem getInputItem(String leftText, String hint, int ...
    method getSelectItem (line 52) | public static FormItem getSelectItem(String leftText, int rightImg) {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/ImageUrlInterface.java
  type ImageUrlInterface (line 5) | public interface ImageUrlInterface extends Serializable {
    method getImageUrl (line 6) | String getImageUrl();
    method getImageTitle (line 7) | String getImageTitle();
    method getImageLink (line 8) | String getImageLink();

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/ListResponse.java
  class ListResponse (line 5) | public class ListResponse<T> {
    method getResults (line 8) | public ArrayList<T> getResults() {
    method setResults (line 12) | public void setResults(ArrayList<T> results) {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/PageIndex.java
  class PageIndex (line 10) | public class PageIndex {
    method getStartPage (line 32) | public int getStartPage() {
    method PageIndex (line 41) | public PageIndex(int startPage, int countPerPage) {
    method init (line 50) | public void init() {
    method success (line 57) | private void success() {
    method toStartPage (line 66) | public int toStartPage() {
    method toNextPage (line 76) | public int toNextPage() {
    method setResponse (line 89) | public <T> void setResponse(LoadMoreAdapter adapter, List<T> currentLi...

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/Pointer.java
  class Pointer (line 7) | public class Pointer implements Serializable {
    method Pointer (line 14) | public Pointer() {
    method Pointer (line 17) | public Pointer(String className, String objectId) {
    method get__type (line 23) | public String get__type() {
    method set__type (line 27) | public void set__type(String __type) {
    method getClassName (line 31) | public String getClassName() {
    method setClassName (line 35) | public void setClassName(String className) {
    method getObjectId (line 39) | public String getObjectId() {
    method setObjectId (line 43) | public void setObjectId(String objectId) {
    method parseToObject (line 53) | public <T> T parseToObject(Class<T> clazz) {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/Relation.java
  class Relation (line 7) | public class Relation implements Serializable {
    method Relation (line 11) | public Relation(Pointer pointer) {
    method Relation (line 15) | public Relation() {
    method add (line 18) | public void add(Pointer pointer) {
    method remove (line 22) | public void remove(Pointer pointer) {
    method get__op (line 27) | public String get__op() {
    method getObjects (line 31) | public List<Pointer> getObjects() {
    method setObjects (line 35) | public void setObjects(List<Pointer> objects) {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/RelationTo.java
  class RelationTo (line 3) | public class RelationTo {
    method getKey (line 9) | public String getKey() {
    method setKey (line 13) | public void setKey(String key) {
    method getObject (line 17) | public Pointer getObject() {
    method setObject (line 21) | public void setObject(Pointer object) {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/SettingItem.java
  class SettingItem (line 6) | public class SettingItem {
    method SettingItem (line 28) | public SettingItem() {
    method SettingItem (line 32) | public SettingItem(int leftImgRes, String midText, String rightText, i...

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/UpdatePswRequest.java
  class UpdatePswRequest (line 3) | public class UpdatePswRequest {
    method getOldPassword (line 7) | public String getOldPassword() {
    method setOldPassword (line 11) | public void setOldPassword(String oldPassword) {
    method getNewPassword (line 15) | public String getNewPassword() {
    method setNewPassword (line 19) | public void setNewPassword(String newPassword) {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/Where.java
  class Where (line 5) | public class Where {
    method getWhere (line 11) | public Map<String, String> getWhere() {
    method setWhere (line 15) | public void setWhere(Map<String, String> where) {
    method getClassName (line 19) | public String getClassName() {
    method setClassName (line 23) | public void setClassName(String className) {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/city/BaseAddressModel.java
  class BaseAddressModel (line 5) | public class BaseAddressModel implements Serializable {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/city/CityModel.java
  class CityModel (line 3) | public class CityModel extends BaseAddressModel {
    method equals (line 7) | @Override

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/fragment/FragmentController.java
  class FragmentController (line 13) | public class FragmentController {
    method FragmentController (line 19) | public FragmentController(AppCompatActivity activity, int containerId,...
    method initFragment (line 26) | public void initFragment() {
    method showFragment (line 34) | public void showFragment(int position) {
    method hideFragments (line 42) | public void hideFragments() {
    method getFragment (line 52) | public Fragment getFragment(int position) {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/net/ErrorConstants.java
  class ErrorConstants (line 6) | public class ErrorConstants {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/net/GlideCircleTransform.java
  class GlideCircleTransform (line 12) | public class GlideCircleTransform extends BitmapTransformation {
    method GlideCircleTransform (line 13) | public GlideCircleTransform(Context context) {
    method transform (line 17) | protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int ou...
    method circleCrop (line 21) | private static Bitmap circleCrop(BitmapPool pool, Bitmap source) {
    method getId (line 41) | @Override

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/net/MultiPageRequest.java
  class MultiPageRequest (line 5) | public abstract class MultiPageRequest<T> {
    method request (line 7) | public abstract Observable<T> request(int page);

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/net/ObservableDecorator.java
  class ObservableDecorator (line 12) | public class ObservableDecorator {
    method decorate (line 14) | public static <T> Observable<T> decorate(Observable<T> observable) {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/net/RoundedCornersTransformation.java
  class RoundedCornersTransformation (line 32) | public class RoundedCornersTransformation implements Transformation<Bitm...
    type CornerType (line 34) | public enum CornerType {
    method RoundedCornersTransformation (line 48) | public RoundedCornersTransformation(Context context, int radius, int m...
    method RoundedCornersTransformation (line 52) | public RoundedCornersTransformation(BitmapPool pool, int radius, int m...
    method RoundedCornersTransformation (line 56) | public RoundedCornersTransformation(Context context, int radius, int m...
    method RoundedCornersTransformation (line 61) | public RoundedCornersTransformation(BitmapPool pool, int radius, int m...
    method transform (line 70) | @Override
    method drawRoundRect (line 90) | private void drawRoundRect(Canvas canvas, Paint paint, float width, fl...
    method drawTopLeftRoundRect (line 146) | private void drawTopLeftRoundRect(Canvas canvas, Paint paint, float ri...
    method drawTopRightRoundRect (line 153) | private void drawTopRightRoundRect(Canvas canvas, Paint paint, float r...
    method drawBottomLeftRoundRect (line 160) | private void drawBottomLeftRoundRect(Canvas canvas, Paint paint, float...
    method drawBottomRightRoundRect (line 167) | private void drawBottomRightRoundRect(Canvas canvas, Paint paint, floa...
    method drawTopRoundRect (line 174) | private void drawTopRoundRect(Canvas canvas, Paint paint, float right,...
    method drawBottomRoundRect (line 180) | private void drawBottomRoundRect(Canvas canvas, Paint paint, float rig...
    method drawLeftRoundRect (line 186) | private void drawLeftRoundRect(Canvas canvas, Paint paint, float right...
    method drawRightRoundRect (line 192) | private void drawRightRoundRect(Canvas canvas, Paint paint, float righ...
    method drawOtherTopLeftRoundRect (line 198) | private void drawOtherTopLeftRoundRect(Canvas canvas, Paint paint, flo...
    method drawOtherTopRightRoundRect (line 206) | private void drawOtherTopRightRoundRect(Canvas canvas, Paint paint, fl...
    method drawOtherBottomLeftRoundRect (line 214) | private void drawOtherBottomLeftRoundRect(Canvas canvas, Paint paint, ...
    method drawOtherBottomRightRoundRect (line 222) | private void drawOtherBottomRightRoundRect(Canvas canvas, Paint paint,...
    method drawDiagonalFromTopLeftRoundRect (line 231) | private void drawDiagonalFromTopLeftRoundRect(Canvas canvas, Paint pai...
    method drawDiagonalFromTopRightRoundRect (line 241) | private void drawDiagonalFromTopRightRoundRect(Canvas canvas, Paint pa...
    method getId (line 251) | @Override public String getId() {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/present/FormItemsPresent.java
  class FormItemsPresent (line 19) | public class FormItemsPresent {
    type OnSelectItemClickListener (line 21) | public interface OnSelectItemClickListener {
      method onSelectItemClick (line 22) | void onSelectItemClick(String leftText);
    method FormItemsPresent (line 29) | public FormItemsPresent(LinearLayout ll_container) {
    method load (line 34) | public void load(List<FormItem> items, Integer[] emptyIndexs,
    method getItemView (line 88) | public ViewGroup getItemView(String leftText) {
    method getString (line 93) | public String getString(String leftText) {
    method showMidContainer (line 99) | public LinearLayout showMidContainer(String leftText) {
    method showMidText (line 108) | public TextView showMidText(String leftText, String midText) {
    method validate (line 118) | public boolean validate() {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/present/GroupEtEmptyCheckPresent.java
  class GroupEtEmptyCheckPresent (line 8) | public class GroupEtEmptyCheckPresent {
    type OnEtEmptyListener (line 12) | public interface OnEtEmptyListener {
      method onEtEmpty (line 13) | void onEtEmpty(boolean hasOneEmpty);
    method GroupEtEmptyCheckPresent (line 16) | public GroupEtEmptyCheckPresent(EditText... ets) {
    method check (line 20) | public void check(final OnEtEmptyListener listener) {
    method checkAllEt (line 41) | private void checkAllEt(OnEtEmptyListener listener, EditText[] ets) {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/present/ImageBannerPresent.java
  class ImageBannerPresent (line 19) | public class ImageBannerPresent {
    method ImageBannerPresent (line 35) | public ImageBannerPresent(Context context, View include_banner_with_in...
    method load (line 67) | public void load(ArrayList<? extends ImageUrlInterface> images) {
    method startAutoScroll (line 77) | public void startAutoScroll() {
    method stopAutoScroll (line 86) | public void stopAutoScroll() {
    method setIndicator (line 91) | private void setIndicator() {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/present/ImageBrowserPresent.java
  class ImageBrowserPresent (line 12) | public class ImageBrowserPresent {
    method ImageBrowserPresent (line 21) | public ImageBrowserPresent(Activity activity, ImageBrowserAdapter adap...
    method init (line 29) | public void init() {
    method initData (line 34) | private void initData() {
    method setData (line 39) | private void setData() {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/present/MultiPageLoadPresent.java
  class MultiPageLoadPresent (line 24) | public class MultiPageLoadPresent {
    method getRv (line 33) | public RecyclerView getRv() {
    method MultiPageLoadPresent (line 37) | public MultiPageLoadPresent(Activity activity, View include_refresh_li...
    method initView (line 44) | private void initView() {
    method setItemDecoration (line 55) | public void setItemDecoration(RecyclerView.ItemDecoration itemDecorati...
    method setDatas (line 68) | public void setDatas(ArrayList datas) {
    method load (line 78) | public <T> Subscription load(RecyclerView.Adapter adapter,
    method setStatus (line 106) | public void setStatus(int status) {
    method notifyDataSetChanged (line 112) | public void notifyDataSetChanged() {
    method initPage (line 118) | public void initPage() {
    method isRefreshing (line 122) | public boolean isRefreshing() {
    method setRefreshing (line 126) | public void setRefreshing(final boolean refreshing) {
    method loadData (line 140) | private Subscription loadData(final int page) {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/ActivityUtils.java
  class ActivityUtils (line 26) | public class ActivityUtils {
    method addFragmentToActivity (line 32) | public static void addFragmentToActivity(FragmentManager fragmentManager,

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/AppUtils.java
  class AppUtils (line 18) | public class AppUtils {
    method getAppVersionName (line 23) | public static String getAppVersionName(Context context) {
    method getAppVersionCode (line 42) | public static int getAppVersionCode(Context context) {
    method getIMEI (line 55) | public static String getIMEI(Context context) {
    method openSoftInput (line 63) | public static void openSoftInput(EditText et) {
    method hideSoftInput (line 71) | public static void hideSoftInput(EditText et) {
    method getSDPath (line 81) | public static File getSDPath() {
    method promptInstall (line 95) | public static void promptInstall(Context context, Uri data) {
    method copy2clipboard (line 103) | public static void copy2clipboard(Context context, String text){

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/DateUtils.java
  class DateUtils (line 15) | public class DateUtils {
    method getShortTime (line 29) | public static String getShortTime(String dateStr) {
    method getDate (line 58) | public static String getDate(String date) {
    method addMonth (line 70) | public static String addMonth(String date, int moonCount) {
    method calculateDayDiff (line 84) | public static int calculateDayDiff(Date targetTime, Date compareTime) {
    method calculateDayDiffOfSameYear (line 105) | public static int calculateDayDiffOfSameYear(Date targetTime, Date com...
    method calculateYearDiff (line 124) | public static int calculateYearDiff(Date targetTime, Date compareTime) {
    method calculateMonthDiff (line 147) | public static int calculateMonthDiff(String targetTime, String compare...
    method calculateMonthDiff (line 159) | public static int calculateMonthDiff(Date targetTime, Date compareTime) {
    method isSameYear (line 176) | public static boolean isSameYear(Date targetTime, Date compareTime) {
    method str2date (line 192) | public static Date str2date(String str, String format) {
    method str2date (line 205) | public static Date str2date(String str) {
    method date2str (line 209) | public static String date2str(Date date) {
    method date2str (line 213) | public static String date2str(Date date, String format) {
    method str2calendar (line 218) | public static Calendar str2calendar(String str) {
    method str2calendar (line 229) | public static Calendar str2calendar(String str, String format) {
    method calendar2str (line 239) | public static String calendar2str(Calendar calendar) {
    method calendar2str (line 243) | public static String calendar2str(Calendar calendar, String format) {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/DialogUtils.java
  class DialogUtils (line 14) | public class DialogUtils {
    method createProgressDialog (line 16) | public static Dialog createProgressDialog(Context context) {
    method createProgressDialog (line 20) | public static Dialog createProgressDialog(Context context, boolean nee...
    method showCommonDialog (line 28) | public static Dialog showCommonDialog(Context context, String message,
    method showConfirmDialog (line 37) | public static Dialog showConfirmDialog(Context context, String message,

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/DisplayUtils.java
  class DisplayUtils (line 7) | public class DisplayUtils {
    method px2dp (line 11) | public static int px2dp(Context context, float pxValue) {
    method dp2px (line 19) | public static int dp2px(Context context, float dpValue) {
    method px2sp (line 27) | public static int px2sp(Context context, float pxValue) {
    method sp2px (line 35) | public static int sp2px(Context context, float dpValue) {
    method getScreenWidthPixels (line 43) | public static int getScreenWidthPixels(Activity context) {
    method getScreenHeightPixels (line 52) | public static int getScreenHeightPixels(Activity context) {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/ErrorInfoUtils.java
  class ErrorInfoUtils (line 15) | public class ErrorInfoUtils {
    method parseHttpErrorInfo (line 20) | public static String parseHttpErrorInfo(Throwable throwable) {
    method getLocalErrorInfo (line 53) | private static String getLocalErrorInfo(ErrorResponse error) {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/ImageUtils.java
  class ImageUtils (line 21) | public class ImageUtils {
    method showImagePickDialog (line 51) | public static void showImagePickDialog(final Activity activity) {
    method showImagePickDialog (line 58) | public static void showImagePickDialog(final Activity activity, final ...
    method pickImageFromCamera (line 86) | @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
    method pickImageFromCamera (line 100) | public static void pickImageFromCamera(final Activity activity) {
    method pickImageFromAlbum (line 107) | @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
    method pickImageFromAlbum (line 118) | public static void pickImageFromAlbum(final Activity activity) {
    method cropImage (line 125) | public static void cropImage(Activity activity, Uri srcUri) {
    method createImageUri (line 162) | private static Uri createImageUri(Context context) {
    method deleteImageUri (line 175) | public static void deleteImageUri(Context context, Uri uri) {
    method openImageByOtherApp (line 182) | public static void openImageByOtherApp(Context context, Uri imageUri) {
    method getImageAbsolutePath19 (line 192) | public static String getImageAbsolutePath19(Context context, Uri image...
    method getDataColumn (line 240) | private static String getDataColumn(Context context, Uri uri, String s...
    method isExternalStorageDocument (line 261) | private static boolean isExternalStorageDocument(Uri uri) {
    method isDownloadsDocument (line 269) | private static boolean isDownloadsDocument(Uri uri) {
    method isMediaDocument (line 277) | private static boolean isMediaDocument(Uri uri) {
    method isGooglePhotosUri (line 285) | private static boolean isGooglePhotosUri(Uri uri) {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/LogUtils.java
  class LogUtils (line 5) | public class LogUtils {
    method showLog (line 7) | public static void showLog(String log) {
    method showLog (line 11) | public static void showLog(String tag, String log) {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/NetUtils.java
  class NetUtils (line 10) | public class NetUtils {
    method NetUtils (line 12) | private NetUtils() {
    method isConnected (line 20) | public static boolean isConnected(Context context) {
    method isWifi (line 40) | public static boolean isWifi(Context context) {
    method openSetting (line 61) | public static void openSetting(Activity activity, int requestCode) {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/StringUtils.java
  class StringUtils (line 12) | public class StringUtils {
    method isEmpty (line 14) | public static boolean isEmpty(CharSequence str) {
    method getMoney (line 18) | public static String getMoney(float cost) {
    class PrimaryClickableSpan (line 23) | public static class PrimaryClickableSpan extends ClickableSpan {
      method PrimaryClickableSpan (line 27) | public PrimaryClickableSpan(Context context) {
      method onClick (line 31) | @Override
      method updateDrawState (line 36) | @Override

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/TitleBuilder.java
  class TitleBuilder (line 20) | public class TitleBuilder {
    method getRootView (line 29) | public View getRootView() {
    method getTvTitle (line 33) | public TextView getTvTitle() {
    method getIvLeft (line 37) | public ImageView getIvLeft() {
    method getIvRight (line 41) | public ImageView getIvRight() {
    method getTvLeft (line 45) | public TextView getTvLeft() {
    method getTvRight (line 49) | public TextView getTvRight() {
    method TitleBuilder (line 56) | public TitleBuilder(Activity context) {
    method TitleBuilder (line 71) | public TitleBuilder(View context) {
    method setTitleBgRes (line 84) | public TitleBuilder setTitleBgRes(int resid) {
    method setTitleText (line 89) | public TitleBuilder setTitleText(String text) {
    method setLeftImage (line 97) | public TitleBuilder setLeftImage(int resId) {
    method setLeftText (line 103) | public TitleBuilder setLeftText(String text) {
    method setLeftOnClickListener (line 109) | public TitleBuilder setLeftOnClickListener(OnClickListener listener) {
    method setRightImage (line 119) | public TitleBuilder setRightImage(int resId) {
    method setRightText (line 125) | public TitleBuilder setRightText(String text) {
    method setRightTextColor (line 132) | public TitleBuilder setRightTextColor(Context context, int resId) {
    method setTitleTextColor (line 137) | public TitleBuilder setTitleTextColor(Context context, int resId) {
    method setRightOnClickListener (line 143) | public TitleBuilder setRightOnClickListener(OnClickListener listener) {
    method build (line 152) | public View build() {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/ToastUtils.java
  class ToastUtils (line 6) | public class ToastUtils {
    method showToast (line 13) | public static void showToast(Context context, CharSequence text, int d...
    method showToast (line 23) | public static void showToast(Context context, CharSequence text) {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/ViewUtils.java
  class ViewUtils (line 3) | public class ViewUtils {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/AddressWheelDialog.java
  class AddressWheelDialog (line 18) | public class AddressWheelDialog extends Dialog implements OnWheelChanged...
    method AddressWheelDialog (line 27) | public AddressWheelDialog(Context context) {
    method initViews (line 34) | private void initViews() {
    method initData (line 54) | private void initData() {
    method onChanged (line 61) | @Override
    method updateCities (line 68) | private void updateCities() {
    method setOnAddressSelectListener (line 81) | public void setOnAddressSelectListener(OnAddressSelectListener onAddre...
    type OnAddressSelectListener (line 85) | public interface OnAddressSelectListener {
      method onAddressSelected (line 86) | void onAddressSelected(CityModel address);

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/BottomTabRadioButton.java
  class BottomTabRadioButton (line 18) | public class BottomTabRadioButton extends RadioButton {
    method getHint_mode (line 99) | public int getHint_mode() {
    method setHint_mode (line 103) | public void setHint_mode(int hint_mode) {
    method getHint_color (line 108) | public int getHint_color() {
    method setHint_color (line 112) | public void setHint_color(int hint_color) {
    method getHint_toppadding (line 117) | public int getHint_toppadding() {
    method setHint_toppadding (line 121) | public void setHint_toppadding(int hint_toppadding) {
    method getHint_rightpadding (line 126) | public int getHint_rightpadding() {
    method setHint_rightpadding (line 130) | public void setHint_rightpadding(int hint_rightpadding) {
    method getPoint_radius (line 135) | public int getPoint_radius() {
    method setPoint_radius (line 139) | public void setPoint_radius(int point_radius) {
    method getNum (line 144) | public int getNum() {
    method setNum (line 148) | public void setNum(int num) {
    method getNum_radius (line 153) | public int getNum_radius() {
    method setNum_radius (line 157) | public void setNum_radius(int num_radius) {
    method getNum_size (line 162) | public int getNum_size() {
    method setNum_size (line 166) | public void setNum_size(int num_size) {
    method getNum_color (line 171) | public int getNum_color() {
    method setNum_color (line 175) | public void setNum_color(int num_color) {
    method BottomTabRadioButton (line 180) | public BottomTabRadioButton(Context context) {
    method BottomTabRadioButton (line 184) | public BottomTabRadioButton(Context context, AttributeSet attrs) {
    method BottomTabRadioButton (line 189) | public BottomTabRadioButton(Context context, AttributeSet attrs, int d...
    method BottomTabRadioButton (line 194) | @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    method initView (line 200) | private void initView(AttributeSet attrs) {
    method onDraw (line 252) | @Override

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/CheckableLinearLayout.java
  class CheckableLinearLayout (line 16) | public class CheckableLinearLayout extends LinearLayout implements Check...
    method CheckableLinearLayout (line 21) | public CheckableLinearLayout(Context context, AttributeSet attrs) {
    method isChecked (line 25) | public boolean isChecked() {
    method setChecked (line 29) | public void setChecked(boolean b) {
    method toggle (line 36) | public void toggle() {
    method onCreateDrawableState (line 40) | @Override

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/DividerItemDecoration.java
  class DividerItemDecoration (line 31) | public class DividerItemDecoration extends RecyclerView.ItemDecoration {
    method DividerItemDecoration (line 41) | public DividerItemDecoration(Context context) {
    method setIgnorePositions (line 50) | public void setIgnorePositions(Integer[] ignorePositions) {
    method onDraw (line 54) | @Override
    method drawVertical (line 59) | public void drawVertical(Canvas c, RecyclerView parent) {
    method getItemOffsets (line 81) | @Override

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/DrawableRadioButton.java
  class DrawableRadioButton (line 12) | public class DrawableRadioButton extends RadioButton {
    method DrawableRadioButton (line 17) | public DrawableRadioButton(Context context) {
    method DrawableRadioButton (line 21) | public DrawableRadioButton(Context context, AttributeSet attrs) {
    method DrawableRadioButton (line 27) | public DrawableRadioButton(Context context, AttributeSet attrs, int de...
    method initView (line 33) | private void initView(Context context, AttributeSet attrs) {
    method setDrawables (line 53) | public void setDrawables(Drawable[] drawables) {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/DrawableTextView.java
  class DrawableTextView (line 12) | public class DrawableTextView extends TextView {
    method DrawableTextView (line 17) | public DrawableTextView(Context context, AttributeSet attrs, int defSt...
    method setDrawables (line 39) | public void setDrawables(Drawable[] drawables) {
    method DrawableTextView (line 59) | public DrawableTextView(Context context, AttributeSet attrs) {
    method DrawableTextView (line 63) | public DrawableTextView(Context context) {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/DropDownMenu.java
  class DropDownMenu (line 23) | public class DropDownMenu extends LinearLayout {
    method DropDownMenu (line 53) | public DropDownMenu(Context context) {
    method DropDownMenu (line 57) | public DropDownMenu(Context context, AttributeSet attrs) {
    method DropDownMenu (line 61) | @TargetApi(Build.VERSION_CODES.HONEYCOMB)
    method setDropDownMenu (line 110) | public void setDropDownMenu(List<String> tabTexts, List<View> popupVie...
    method addTab (line 144) | private void addTab(List<String> tabTexts, int i) {
    method setTabText (line 180) | public void setTabText(String text) {
    method setTabClickable (line 186) | public void setTabClickable(boolean clickable) {
    method closeMenu (line 195) | public void closeMenu() {
    method isShowing (line 214) | public boolean isShowing() {
    method switchMenu (line 223) | private void switchMenu(View target) {
    method dpTpPx (line 252) | public int dpTpPx(float value) {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/EmptyItemDecoration.java
  class EmptyItemDecoration (line 26) | public class EmptyItemDecoration extends RecyclerView.ItemDecoration {
    method EmptyItemDecoration (line 34) | public EmptyItemDecoration(int height) {
    method EmptyItemDecoration (line 38) | public EmptyItemDecoration(Integer[] dividerPositions, int height) {
    method getItemOffsets (line 43) | @Override

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/GridSpacingDecorator.java
  class GridSpacingDecorator (line 7) | public class GridSpacingDecorator extends RecyclerView.ItemDecoration {
    method GridSpacingDecorator (line 11) | public GridSpacingDecorator(int space) {
    method getItemOffsets (line 15) | @Override

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/PinnedSectionListView.java
  class PinnedSectionListView (line 44) | public class PinnedSectionListView extends ListView {
    type PinnedSectionListAdapter (line 50) | public static interface PinnedSectionListAdapter extends ListAdapter {
      method isItemViewTypePinned (line 52) | boolean isItemViewTypePinned(int viewType);
    class PinnedSection (line 56) | static class PinnedSection {
    method onScrollStateChanged (line 94) | @Override public void onScrollStateChanged(AbsListView view, int scrol...
    method onScroll (line 100) | @Override
    method onChanged (line 152) | @Override public void onChanged() {
    method onInvalidated (line 155) | @Override public void onInvalidated() {
    method PinnedSectionListView (line 162) | public PinnedSectionListView(Context context, AttributeSet attrs) {
    method PinnedSectionListView (line 167) | public PinnedSectionListView(Context context, AttributeSet attrs, int ...
    method initView (line 172) | private void initView() {
    method setShadowVisible (line 180) | public void setShadowVisible(boolean visible) {
    method initShadow (line 190) | public void initShadow(boolean visible) {
    method createPinnedShadow (line 206) | void createPinnedShadow(int position) {
    method destroyPinnedShadow (line 253) | void destroyPinnedShadow() {
    method ensureShadowForPosition (line 262) | void ensureShadowForPosition(int sectionPosition, int firstVisibleItem...
    method findFirstVisibleSectionPosition (line 302) | int findFirstVisibleSectionPosition(int firstVisibleItem, int visibleI...
    method findCurrentSectionPosition (line 320) | int findCurrentSectionPosition(int fromPosition) {
    method recreatePinnedShadow (line 344) | void recreatePinnedShadow() {
    method setOnScrollListener (line 356) | @Override
    method onRestoreInstanceState (line 365) | @Override
    method setAdapter (line 375) | @Override
    method onLayout (line 398) | @Override
    method dispatchDraw (line 410) | @Override
    method dispatchTouchEvent (line 445) | @Override
    method isPinnedViewTouched (line 503) | private boolean isPinnedViewTouched(View view, float x, float y) {
    method clearTouchTarget (line 516) | private void clearTouchTarget() {
    method performPinnedItemClick (line 524) | private boolean performPinnedItemClick() {
    method isItemViewTypePinned (line 540) | public static boolean isItemViewTypePinned(ListAdapter adapter, int vi...

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/PositionBar.java
  class PositionBar (line 14) | @SuppressLint("ClickableViewAccessibility")
    method setOnPositionChangedListener (line 23) | public void setOnPositionChangedListener(OnPositionChangedListener lis...
    method PositionBar (line 27) | public PositionBar(Context context, AttributeSet attrs) {
    method setItems (line 34) | public void setItems(String[] items) {
    method getItems (line 49) | public String[] getItems() {
    method PositionBar (line 53) | public PositionBar(Context context) {
    method onTouchEvent (line 57) | @Override
    method findChildByLocation (line 88) | private TextView findChildByLocation(float x, float y) {
    type OnPositionChangedListener (line 102) | public interface OnPositionChangedListener {
      method onPositionSelected (line 103) | void onPositionSelected(String key);

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/WrapHeightGridView.java
  class WrapHeightGridView (line 7) | public class WrapHeightGridView extends GridView {
    method WrapHeightGridView (line 9) | public WrapHeightGridView(Context context) {
    method WrapHeightGridView (line 13) | public WrapHeightGridView(Context context, AttributeSet attrs) {
    method WrapHeightGridView (line 17) | public WrapHeightGridView(Context context, AttributeSet attrs, int def...
    method onMeasure (line 21) | @Override

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/WrapHeightLinearLayoutManager.java
  class WrapHeightLinearLayoutManager (line 12) | public class WrapHeightLinearLayoutManager extends LinearLayoutManager {
    method WrapHeightLinearLayoutManager (line 14) | public WrapHeightLinearLayoutManager(Context context, int orientation,...
    method onMeasure (line 20) | @Override
    method measureScrapChild (line 64) | private void measureScrapChild(RecyclerView.Recycler recycler, int pos...

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/WrapHeightListView.java
  class WrapHeightListView (line 7) | public class WrapHeightListView extends ListView {
    method WrapHeightListView (line 9) | public WrapHeightListView(Context context) {
    method WrapHeightListView (line 13) | public WrapHeightListView(Context context, AttributeSet attrs) {
    method WrapHeightListView (line 17) | public WrapHeightListView(Context context, AttributeSet attrs, int def...
    method onMeasure (line 21) | @Override

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/ItemsRange.java
  class ItemsRange (line 25) | public class ItemsRange {
    method ItemsRange (line 35) | public ItemsRange() {
    method ItemsRange (line 44) | public ItemsRange(int first, int count) {
    method getFirst (line 53) | public int getFirst() {
    method getLast (line 61) | public int getLast() {
    method getCount (line 69) | public int getCount() {
    method contains (line 78) | public boolean contains(int index) {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/OnWheelChangedListener.java
  type OnWheelChangedListener (line 25) | public interface OnWheelChangedListener {
    method onChanged (line 32) | void onChanged(WheelView wheel, int oldValue, int newValue);

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/OnWheelClickedListener.java
  type OnWheelClickedListener (line 25) | public interface OnWheelClickedListener {
    method onItemClicked (line 31) | void onItemClicked(WheelView wheel, int itemIndex);

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/OnWheelScrollListener.java
  type OnWheelScrollListener (line 22) | public interface OnWheelScrollListener {
    method onScrollingStarted (line 27) | void onScrollingStarted(WheelView wheel);
    method onScrollingFinished (line 33) | void onScrollingFinished(WheelView wheel);

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/WheelAdapter.java
  type WheelAdapter (line 24) | public interface WheelAdapter {
    method getItemsCount (line 29) | public int getItemsCount();
    method getItem (line 37) | public String getItem(int index);
    method getMaximumLength (line 45) | public int getMaximumLength();

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/WheelRecycle.java
  class WheelRecycle (line 31) | public class WheelRecycle {
    method WheelRecycle (line 45) | public WheelRecycle(WheelView wheel) {
    method recycleItems (line 59) | public int recycleItems(LinearLayout layout, int firstItem, ItemsRange...
    method getItem (line 80) | public View getItem() {
    method getEmptyItem (line 88) | public View getEmptyItem() {
    method clearAll (line 95) | public void clearAll() {
    method addView (line 110) | private List<View> addView(View view, List<View> cache) {
    method recycleView (line 124) | private void recycleView(View view, int index) {
    method getCachedView (line 144) | private View getCachedView(List<View> cache) {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/WheelScroller.java
  class WheelScroller (line 34) | public class WheelScroller {
    type ScrollingListener (line 38) | public interface ScrollingListener {
      method onScroll (line 43) | void onScroll(int distance);
      method onStarted (line 48) | void onStarted();
      method onFinished (line 53) | void onFinished();
      method onJustify (line 58) | void onJustify();
    method WheelScroller (line 85) | public WheelScroller(Context context, ScrollingListener listener) {
    method setInterpolator (line 99) | public void setInterpolator(Interpolator interpolator) {
    method scroll (line 109) | public void scroll(int distance, int time) {
    method stopScrolling (line 123) | public void stopScrolling() {
    method onTouchEvent (line 132) | public boolean onTouchEvent(MotionEvent event) {
    method onScroll (line 160) | public boolean onScroll(MotionEvent e1, MotionEvent e2, float distance...
    method onFling (line 166) | public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX...
    method setNextMessage (line 185) | private void setNextMessage(int message) {
    method clearMessages (line 193) | private void clearMessages() {
    method handleMessage (line 200) | public void handleMessage(Message msg) {
    method justify (line 228) | private void justify() {
    method startScrolling (line 236) | private void startScrolling() {
    method finishScrolling (line 246) | void finishScrolling() {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/WheelView.java
  class WheelView (line 47) | public class WheelView extends View {
    method WheelView (line 117) | public WheelView(Context context, AttributeSet attrs, int defStyle) {
    method WheelView (line 125) | public WheelView(Context context, AttributeSet attrs) {
    method WheelView (line 133) | public WheelView(Context context) {
    method initData (line 142) | private void initData(Context context) {
    method onStarted (line 148) | @Override
    method onScroll (line 154) | @Override
    method onFinished (line 168) | @Override
    method onJustify (line 179) | @Override
    method setInterpolator (line 191) | public void setInterpolator(Interpolator interpolator) {
    method getVisibleItems (line 200) | public int getVisibleItems() {
    method setVisibleItems (line 211) | public void setVisibleItems(int count) {
    method getViewAdapter (line 219) | public WheelViewAdapter getViewAdapter() {
    method onChanged (line 225) | @Override
    method onInvalidated (line 230) | @Override
    method setViewAdapter (line 242) | public void setViewAdapter(WheelViewAdapter viewAdapter) {
    method addChangingListener (line 258) | public void addChangingListener(OnWheelChangedListener listener) {
    method removeChangingListener (line 266) | public void removeChangingListener(OnWheelChangedListener listener) {
    method notifyChangingListeners (line 275) | protected void notifyChangingListeners(int oldValue, int newValue) {
    method addScrollingListener (line 285) | public void addScrollingListener(OnWheelScrollListener listener) {
    method removeScrollingListener (line 293) | public void removeScrollingListener(OnWheelScrollListener listener) {
    method notifyScrollingListenersAboutStart (line 300) | protected void notifyScrollingListenersAboutStart() {
    method notifyScrollingListenersAboutEnd (line 309) | protected void notifyScrollingListenersAboutEnd() {
    method addClickingListener (line 319) | public void addClickingListener(OnWheelClickedListener listener) {
    method removeClickingListener (line 327) | public void removeClickingListener(OnWheelClickedListener listener) {
    method notifyClickListenersAboutClick (line 334) | protected void notifyClickListenersAboutClick(int item) {
    method getCurrentItem (line 345) | public int getCurrentItem() {
    method setCurrentItem (line 355) | public void setCurrentItem(int index, boolean animated) {
    method setCurrentItem (line 399) | public void setCurrentItem(int index) {
    method isCyclic (line 407) | public boolean isCyclic() {
    method setCyclic (line 415) | public void setCyclic(boolean isCyclic) {
    method drawShadows (line 424) | public boolean drawShadows() {
    method setDrawShadows (line 432) | public void setDrawShadows(boolean drawShadows) {
    method setShadowColor (line 442) | public void setShadowColor(int start, int middle, int end) {
    method setWheelBackground (line 450) | public void setWheelBackground(int resource) {
    method setWheelForeground (line 459) | public void setWheelForeground(int resource) {
    method invalidateWheel (line 468) | public void invalidateWheel(boolean clearCaches) {
    method initResourcesIfNecessary (line 486) | private void initResourcesIfNecessary() {
    method getDesiredHeight (line 509) | private int getDesiredHeight(LinearLayout layout) {
    method getItemHeight (line 523) | private int getItemHeight() {
    method calculateLayoutWidth (line 542) | private int calculateLayoutWidth(int widthSize, int mode) {
    method onMeasure (line 570) | @Override
    method onLayout (line 595) | @Override
    method layout (line 605) | private void layout(int width, int height) {
    method onDraw (line 611) | @Override
    method drawShadows (line 629) | private void drawShadows(Canvas canvas) {
    method drawItems (line 646) | private void drawItems(Canvas canvas) {
    method drawCenterRect (line 661) | private void drawCenterRect(Canvas canvas) {
    method onTouchEvent (line 681) | @Override
    method doScroll (line 717) | private void doScroll(int delta) {
    method scroll (line 779) | public void scroll(int itemsToScroll, int time) {
    method getItemsRange (line 788) | private ItemsRange getItemsRange() {
    method rebuildItems (line 820) | private boolean rebuildItems() {
    method updateView (line 861) | private void updateView() {
    method createItemsLayout (line 871) | private void createItemsLayout() {
    method buildViewForMeasuring (line 881) | private void buildViewForMeasuring() {
    method addViewItem (line 904) | private boolean addViewItem(int index, boolean first) {
    method isValidItemIndex (line 924) | private boolean isValidItemIndex(int index) {
    method getItemView (line 934) | private View getItemView(int index) {
    method stopScrolling (line 954) | public void stopScrolling() {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/adapters/AbstractWheelAdapter.java
  class AbstractWheelAdapter (line 29) | public abstract class AbstractWheelAdapter implements WheelViewAdapter {
    method getEmptyItem (line 33) | @Override
    method registerDataSetObserver (line 38) | @Override
    method unregisterDataSetObserver (line 46) | @Override
    method notifyDataChangedEvent (line 56) | protected void notifyDataChangedEvent() {
    method notifyDataInvalidatedEvent (line 67) | protected void notifyDataInvalidatedEvent() {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/adapters/AbstractWheelTextAdapter.java
  class AbstractWheelTextAdapter (line 30) | public abstract class AbstractWheelTextAdapter extends AbstractWheelAdap...
    method AbstractWheelTextAdapter (line 67) | protected AbstractWheelTextAdapter(Context context) {
    method AbstractWheelTextAdapter (line 76) | protected AbstractWheelTextAdapter(Context context, int itemResource) {
    method AbstractWheelTextAdapter (line 86) | protected AbstractWheelTextAdapter(Context context, int itemResource, ...
    method getTextColor (line 98) | public int getTextColor() {
    method setTextColor (line 106) | public void setTextColor(int textColor) {
    method getTextSize (line 114) | public int getTextSize() {
    method setTextSize (line 122) | public void setTextSize(int textSize) {
    method getItemResource (line 130) | public int getItemResource() {
    method setItemResource (line 138) | public void setItemResource(int itemResourceId) {
    method getItemTextResource (line 146) | public int getItemTextResource() {
    method setItemTextResource (line 154) | public void setItemTextResource(int itemTextResourceId) {
    method getEmptyItemResource (line 162) | public int getEmptyItemResource() {
    method setEmptyItemResource (line 170) | public void setEmptyItemResource(int emptyItemResourceId) {
    method getItemText (line 180) | protected abstract CharSequence getItemText(int index);
    method getItem (line 182) | @Override
    method getEmptyItem (line 205) | @Override
    method configureTextView (line 221) | protected void configureTextView(TextView view) {
    method getTextView (line 237) | private TextView getTextView(View view, int textResource) {
    method getView (line 259) | private View getView(int resource, ViewGroup parent) {

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/adapters/AdapterWheel.java
  class AdapterWheel (line 29) | public class AdapterWheel extends AbstractWheelTextAdapter {
    method AdapterWheel (line 39) | public AdapterWheel(Context context, WheelAdapter adapter) {
    method getAdapter (line 49) | public WheelAdapter getAdapter() {
    method getItemsCount (line 53) | @Override
    method getItemText (line 58) | @Override

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/adapters/ArrayWheelAdapter.java
  class ArrayWheelAdapter (line 29) | public class ArrayWheelAdapter<T> extends AbstractWheelTextAdapter {
    method ArrayWheelAdapter (line 40) | public ArrayWheelAdapter(Context context, ArrayList<T> items) {
    method getItemText (line 47) | @Override
    method getItemsCount (line 60) | @Override

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/adapters/NumericWheelAdapter.java
  class NumericWheelAdapter (line 24) | public class NumericWheelAdapter extends AbstractWheelTextAdapter {
    method NumericWheelAdapter (line 43) | public NumericWheelAdapter(Context context) {
    method NumericWheelAdapter (line 53) | public NumericWheelAdapter(Context context, int minValue, int maxValue) {
    method NumericWheelAdapter (line 64) | public NumericWheelAdapter(Context context, int minValue, int maxValue...
    method getItemText (line 72) | @Override
    method getItemsCount (line 81) | @Override

FILE: DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/adapters/WheelViewAdapter.java
  type WheelViewAdapter (line 26) | public interface WheelViewAdapter {
    method getItemsCount (line 31) | public int getItemsCount();
    method getItem (line 41) | public View getItem(int index, View convertView, ViewGroup parent);
    method getEmptyItem (line 51) | public View getEmptyItem(View convertView, ViewGroup parent);
    method registerDataSetObserver (line 57) | public void registerDataSetObserver(DataSetObserver observer);
    method unregisterDataSetObserver (line 63) | void unregisterDataSetObserver(DataSetObserver observer);

FILE: DesignResCollection_MVP-Dagger2/app/src/androidTest/java/com/boredream/designrescollection/ApplicationTest.java
  class ApplicationTest (line 9) | public class ApplicationTest extends ApplicationTestCase<Application> {
    method ApplicationTest (line 10) | public ApplicationTest() {

FILE: DesignResCollection_MVP-Dagger2/app/src/androidTest/java/com/boredream/designrescollection/idlingres/RxIdlingResource.java
  class RxIdlingResource (line 13) | public class RxIdlingResource extends RxJavaObservableExecutionHook impl...
    method RxIdlingResource (line 23) | private RxIdlingResource() {
    method get (line 27) | public static RxIdlingResource get() {
    method getName (line 39) | @Override
    method isIdleNow (line 44) | @Override
    method registerIdleTransitionCallback (line 50) | @Override
    method onSubscribeStart (line 59) | @Override
    method onFinally (line 90) | private <T> void onFinally(Observable.OnSubscribe<T> onSubscribe, fina...

FILE: DesignResCollection_MVP-Dagger2/app/src/androidTest/java/com/boredream/designrescollection/ui/login/LoginActivityTest.java
  class LoginActivityTest (line 29) | @RunWith(AndroidJUnit4.class)
    method testLogin_EmptyPassword (line 39) | @Test
    method testLogin_EmptyUsername (line 55) | @Test
    method testLogin_Success (line 71) | @Test
    method testLogin_UserNotExit (line 86) | @Test
    method testLogin_PswError (line 102) | @Test

FILE: DesignResCollection_MVP-Dagger2/app/src/androidTest/java/com/boredream/designrescollection/ui/userinfoedit/UserInfoEditActivityTest.java
  class UserInfoEditActivityTest (line 38) | @RunWith(AndroidJUnit4.class)
    method testUploadAvatar (line 55) | @Test
    method createImageGalleryActivityResultStub (line 73) | private Instrumentation.ActivityResult createImageGalleryActivityResul...
    method testUpdateNickname (line 83) | @Test

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/adapter/DesignResAdapter.java
  class DesignResAdapter (line 19) | public class DesignResAdapter extends RecyclerView.Adapter<DesignResAdap...
    method DesignResAdapter (line 24) | public DesignResAdapter(Context context, ArrayList<DesignRes> datas) {
    method getItemCount (line 29) | @Override
    class ViewHolder (line 34) | public static class ViewHolder extends RecyclerView.ViewHolder {
      method ViewHolder (line 38) | public ViewHolder(View rootView) {
    method onCreateViewHolder (line 47) | @Override
    method onBindViewHolder (line 53) | @Override

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/adapter/MoreRecyclerAdapter.java
  class MoreRecyclerAdapter (line 28) | public class MoreRecyclerAdapter extends SettingRecyclerAdapter {
    method MoreRecyclerAdapter (line 34) | public MoreRecyclerAdapter(List<SettingItem> datas, OnItemClickListene...
    method getItemCount (line 38) | @Override
    method getItemViewType (line 44) | @Override
    method setUser (line 49) | public void setUser(User user) {
    class ViewHolderUserHeader (line 53) | public static class ViewHolderUserHeader extends RecyclerView.ViewHold...
      method ViewHolderUserHeader (line 62) | public ViewHolderUserHeader(final View itemView) {
    method onCreateViewHolder (line 73) | @Override
    method onBindViewHolder (line 83) | @Override

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/base/BaseActivity.java
  class BaseActivity (line 17) | public class BaseActivity extends BoreBaseActivity {
    method onCreate (line 27) | @Override
    method onStart (line 42) | @Override
    method onStop (line 48) | @Override
    method setCouldDoubleBackExit (line 59) | public void setCouldDoubleBackExit(boolean couldDoubleBackExit) {
    method onBackPressed (line 63) | @Override
    method exit (line 94) | protected void exit() {

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/base/BaseApplication.java
  class BaseApplication (line 20) | public class BaseApplication extends Application {
    method onCreate (line 31) | @Override
    method initOkHttpClient (line 39) | private void initOkHttpClient() {
    method initGlide (line 66) | private void initGlide() {

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/base/BaseEntity.java
  class BaseEntity (line 6) | public class BaseEntity extends BoreBaseEntity {
    method equals (line 8) | @Override

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/base/BaseFragment.java
  class BaseFragment (line 13) | public abstract class BaseFragment extends Fragment {
    method onCreate (line 19) | @Override
    method intent2Activity (line 28) | protected void intent2Activity(Class<? extends Activity> tarActivity) {
    method showToast (line 33) | protected void showToast(String msg) {
    method showLog (line 37) | protected void showLog(String msg) {
    method showProgressDialog (line 41) | protected void showProgressDialog() {
    method dismissProgressDialog (line 45) | protected void dismissProgressDialog() {

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/base/BasePresenter.java
  type BasePresenter (line 19) | public interface BasePresenter {

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/base/BaseView.java
  type BaseView (line 19) | public interface BaseView<T> {
    method setPresenter (line 21) | void setPresenter(T presenter);
    method isActive (line 23) | boolean isActive();
    method showProgress (line 25) | void showProgress();
    method dismissProgress (line 27) | void dismissProgress();
    method showTip (line 29) | void showTip(String message);

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/constants/CommonConstants.java
  class CommonConstants (line 6) | public class CommonConstants {
    method CommonConstants (line 8) | private CommonConstants() {

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/entity/Comment.java
  class Comment (line 6) | public class Comment extends BaseEntity {
    method getDesignRes (line 22) | public DesignRes getDesignRes() {
    method setDesignRes (line 26) | public void setDesignRes(DesignRes designRes) {
    method getUser (line 30) | public User getUser() {
    method setUser (line 34) | public void setUser(User user) {
    method getContent (line 38) | public String getContent() {
    method setContent (line 42) | public void setContent(String content) {

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/entity/DesignRes.java
  class DesignRes (line 9) | public class DesignRes extends BaseEntity {
    method getDesc (line 17) | public String getDesc() {
    method setDesc (line 21) | public void setDesc(String desc) {
    method getSrcTag (line 25) | public String getSrcTag() {
    method setSrcTag (line 29) | public void setSrcTag(String srcTag) {
    method getName (line 33) | public String getName() {
    method setName (line 37) | public void setName(String name) {
    method getImgUrl (line 41) | public String getImgUrl() {
    method setImgUrl (line 45) | public void setImgUrl(String imgUrl) {
    method getSrcLink (line 49) | public String getSrcLink() {
    method setSrcLink (line 53) | public void setSrcLink(String srcLink) {
    method equals (line 57) | @Override
    method hashCode (line 75) | @Override

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/entity/FeedBack.java
  class FeedBack (line 6) | public class FeedBack extends BaseEntity {
    method getContent (line 11) | public String getContent() {
    method setContent (line 15) | public void setContent(String content) {
    method getEmail (line 19) | public String getEmail() {
    method setEmail (line 23) | public void setEmail(String email) {

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/entity/User.java
  class User (line 6) | public class User extends BaseEntity {
    method getSessionToken (line 36) | public String getSessionToken() {
    method setSessionToken (line 40) | public void setSessionToken(String sessionToken) {
    method getCompany (line 44) | public String getCompany() {
    method setCompany (line 48) | public void setCompany(String company) {
    method getAvatar (line 52) | public String getAvatar() {
    method setAvatar (line 56) | public void setAvatar(String avatar) {
    method getSmsCode (line 60) | public String getSmsCode() {
    method setSmsCode (line 64) | public void setSmsCode(String smsCode) {
    method getPassword (line 68) | public String getPassword() {
    method setPassword (line 72) | public void setPassword(String password) {
    method getMobilePhoneNumber (line 76) | public String getMobilePhoneNumber() {
    method setMobilePhoneNumber (line 80) | public void setMobilePhoneNumber(String mobilePhoneNumber) {
    method getUsername (line 84) | public String getUsername() {
    method setUsername (line 88) | public void setUsername(String username) {
    method getNickname (line 92) | public String getNickname() {
    method setNickname (line 96) | public void setNickname(String nickname) {

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/net/ApiModule.java
  class ApiModule (line 13) | @Module
    method provideApiService (line 19) | @Singleton

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/net/ApiService.java
  type ApiService (line 22) | public interface ApiService {
    method login (line 25) | @GET("/1/login")
    method register (line 31) | @POST("/1/users")
    method updateUserById (line 36) | @PUT("/1/users/{objectId}")
    method fileUpload (line 42) | @POST("/1/files/{fileName}")
    method getAppUpdateInfo (line 48) | @GET("/1/classes/AppUpdateInfo")
    method addFeedBack (line 52) | @POST("/1/classes/FeedBack")
    method getDesignRes (line 60) | @GET("/1/classes/DesignRes")

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/net/AppComponent.java
  type AppComponent (line 10) | @PerApplication
    method inject (line 15) | void inject(BaseApplication request);

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/net/GlideHelper.java
  class GlideHelper (line 15) | public class GlideHelper {
    method showAvatar (line 17) | public static void showAvatar(Context context, String avatar, ImageVie...
    method showImage (line 28) | public static void showImage(Context context, String imageUrl, ImageVi...

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/net/SimpleSubscriber.java
  class SimpleSubscriber (line 14) | public class SimpleSubscriber<T> extends Subscriber<T> {
    method SimpleSubscriber (line 18) | public SimpleSubscriber(Context context) {
    method onCompleted (line 22) | @Override
    method onError (line 27) | @Override
    method onNext (line 34) | @Override

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/ui/AboutActivity.java
  class AboutActivity (line 17) | public class AboutActivity extends BaseActivity {
    method onCreate (line 22) | @Override
    method initView (line 29) | private void initView() {
    method getAboutString (line 42) | private SpannableString getAboutString() {

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/ui/MainActivity.java
  class MainActivity (line 20) | public class MainActivity extends BaseActivity implements RadioGroup.OnC...
    method onCreate (line 28) | @Override
    method initView (line 37) | private void initView() {
    method initData (line 46) | private void initData() {
    method onCheckedChanged (line 60) | @Override

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/ui/SettingActivity.java
  class SettingActivity (line 26) | public class SettingActivity extends BaseActivity implements View.OnClic...
    method onCreate (line 34) | @Override
    method initView (line 42) | private void initView() {
    method initData (line 51) | private void initData() {
    method onItemClick (line 78) | @Override
    method onClick (line 95) | @Override

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/ui/UserFragment.java
  class UserFragment (line 25) | public class UserFragment extends BaseFragment implements AdapterView.On...
    method onCreateView (line 30) | @Override
    method onStart (line 38) | @Override
    method initView (line 47) | private void initView(View view) {
    method initData (line 53) | private void initData() {
    method onItemClick (line 83) | @Override

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/ui/feedback/FeedBackActivity.java
  class FeedBackActivity (line 14) | public class FeedBackActivity extends BaseActivity implements FeedBackCo...
    method onCreate (line 21) | @Override
    method initView (line 30) | private void initView() {
    method submit (line 47) | private void submit() {
    method addFeedbackSuccess (line 55) | @Override
    method setPresenter (line 61) | @Override
    method isActive (line 66) | @Override
    method showProgress (line 71) | @Override
    method dismissProgress (line 76) | @Override
    method showTip (line 81) | @Override

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/ui/feedback/FeedBackContract.java
  type FeedBackContract (line 6) | public interface FeedBackContract {
    type View (line 8) | interface View extends BaseView<Presenter> {
      method addFeedbackSuccess (line 10) | void addFeedbackSuccess();
    type Presenter (line 14) | interface Presenter extends BasePresenter {
      method addFeedback (line 16) | void addFeedback(String content, String email);

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/ui/feedback/FeedBackPresenter.java
  class FeedBackPresenter (line 12) | public class FeedBackPresenter implements FeedBackContract.Presenter {
    method FeedBackPresenter (line 17) | public FeedBackPresenter(FeedBackContract.View view, ApiService api) {
    method addFeedback (line 23) | @Override

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/ui/home/HomeContract.java
  type HomeContract (line 9) | public interface HomeContract {
    type View (line 11) | interface View extends BaseView<Presenter> {
      method loadListSuccess (line 13) | void loadListSuccess(int page, List<DesignRes> datas);
    type Presenter (line 17) | interface Presenter extends BasePresenter {
      method loadList (line 19) | void loadList(int page);
      method pullToLoadList (line 21) | void pullToLoadList();

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/ui/home/HomeFragment.java
  class HomeFragment (line 25) | public class HomeFragment extends BaseFragment implements HomeContract.V...
    method onCreateView (line 36) | @Override
    method initView (line 44) | private void initView() {
    method initData (line 72) | private void initData() {
    method loadListSuccess (line 76) | @Override
    method setPresenter (line 90) | @Override
    method isActive (line 95) | @Override
    method showProgress (line 100) | @Override
    method dismissProgress (line 110) | @Override
    method showTip (line 115) | @Override

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/ui/home/HomePresenter.java
  class HomePresenter (line 15) | public class HomePresenter implements HomeContract.Presenter {
    method HomePresenter (line 21) | public HomePresenter(HomeContract.View view, ApiService service) {
    method pullToLoadList (line 27) | @Override
    method loadList (line 32) | @Override
    method loadData (line 41) | private void loadData(final int page) {

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/ui/login/LoginActivity.java
  class LoginActivity (line 12) | public class LoginActivity extends BaseActivity {
    method onCreate (line 21) | @Override
    method initExtras (line 30) | private void initExtras() {
    method initView (line 34) | private void initView() {

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/ui/login/LoginComponent.java
  type LoginComponent (line 7) | @PerActivity
    method inject (line 10) | void inject(LoginActivity activity);

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/ui/login/LoginContract.java
  type LoginContract (line 10) | public interface LoginContract {
    type View (line 12) | interface View extends BaseView<Presenter> {
      method loginSuccess (line 14) | void loginSuccess(User user);
    type Presenter (line 18) | interface Presenter extends BasePresenter {
      method login (line 20) | void login(String username, String password);

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/ui/login/LoginFragment.java
  class LoginFragment (line 20) | public class LoginFragment extends BaseFragment implements LoginContract...
    method newInstance (line 33) | public static LoginFragment newInstance(boolean checkLogin) {
    method onCreateView (line 41) | @Override
    method initExtras (line 49) | private void initExtras() {
    method initView (line 53) | private void initView(View view) {
    method onClick (line 65) | @Override
    method showProgress (line 85) | @Override
    method dismissProgress (line 90) | @Override
    method loginSuccess (line 95) | @Override
    method showTip (line 108) | @Override
    method isActive (line 113) | @Override
    method setPresenter (line 118) | @Override

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/ui/login/LoginPresenter.java
  class LoginPresenter (line 14) | public class LoginPresenter implements LoginContract.Presenter {
    method LoginPresenter (line 19) | @Inject
    method login (line 26) | @Override

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/ui/login/LoginPresenterModule.java
  class LoginPresenterModule (line 6) | @Module
    method LoginPresenterModule (line 11) | public LoginPresenterModule(LoginContract.View view) {
    method provideLoginContractView (line 15) | @Provides

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/ui/modifytext/ModifyTextActivity.java
  class ModifyTextActivity (line 15) | public class ModifyTextActivity extends BaseActivity implements ModifyTe...
    method start (line 29) | public static void start(Activity context, int requestCode, String tit...
    method onCreate (line 36) | @Override
    method initExtras (line 46) | private void initExtras() {
    method initView (line 52) | private void initView() {
    method initData (line 66) | private void initData() {
    method submit (line 72) | private void submit() {
    method modifyTextSuccess (line 77) | @Override
    method setPresenter (line 86) | @Override
    method isActive (line 91) | @Override
    method showProgress (line 96) | @Override
    method dismissProgress (line 101) | @Override
    method showTip (line 106) | @Override

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/ui/modifytext/ModifyTextContract.java
  type ModifyTextContract (line 6) | public interface ModifyTextContract {
    type View (line 8) | interface View extends BaseView<Presenter> {
      method modifyTextSuccess (line 10) | void modifyTextSuccess(boolean isModify, String newString);
    type Presenter (line 14) | interface Presenter extends BasePresenter {
      method modifyText (line 16) | void modifyText(String title, String oldString, String modifyString);

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/ui/modifytext/ModifyTextPresenter.java
  class ModifyTextPresenter (line 5) | public class ModifyTextPresenter implements ModifyTextContract.Presenter {
    method ModifyTextPresenter (line 9) | public ModifyTextPresenter(ModifyTextContract.View view) {
    method modifyText (line 14) | @Override

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/ui/register/RegisterContract.java
  class RegisterContract (line 7) | public class RegisterContract {
    type View (line 8) | interface View extends BaseView<Presenter> {
      method requestSmsSuccess (line 10) | void requestSmsSuccess(String phone, String password);
      method registerSuccess (line 12) | void registerSuccess(User user);
    type Presenter (line 15) | interface Presenter extends BasePresenter {
      method requestSms (line 17) | void requestSms(String phone, String password);
      method register (line 19) | void register(String phone, String password, String code);

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/ui/register/RegisterPresenter.java
  class RegisterPresenter (line 13) | public class RegisterPresenter implements RegisterContract.Presenter {
    method RegisterPresenter (line 18) | public RegisterPresenter(RegisterContract.View view, ApiService servic...
    method requestSms (line 24) | @Override
    method register (line 69) | @Override

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/ui/register/RegisterStep1Activity.java
  class RegisterStep1Activity (line 19) | public class RegisterStep1Activity extends BaseActivity implements View....
    method onCreate (line 28) | @Override
    method initView (line 36) | private void initView() {
    method next (line 47) | private void next() {
    method onClick (line 54) | @Override
    method requestSmsSuccess (line 63) | @Override
    method registerSuccess (line 72) | @Override
    method setPresenter (line 77) | @Override
    method isActive (line 82) | @Override
    method showProgress (line 87) | @Override
    method dismissProgress (line 92) | @Override
    method showTip (line 97) | @Override

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/ui/register/RegisterStep2Activity.java
  class RegisterStep2Activity (line 25) | public class RegisterStep2Activity extends BaseActivity implements View....
    method onCreate (line 42) | @Override
    method initExtras (line 52) | private void initExtras() {
    method initView (line 58) | private void initView() {
    method initData (line 70) | private void initData() {
    method startCountDown (line 77) | private void startCountDown() {
    method submit (line 105) | private void submit() {
    method onClick (line 110) | @Override
    method requestSmsSuccess (line 122) | @Override
    method registerSuccess (line 127) | @Override
    method setPresenter (line 144) | @Override
    method isActive (line 149) | @Override
    method showProgress (line 154) | @Override
    method dismissProgress (line 159) | @Override
    method showTip (line 164) | @Override

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/ui/userinfoedit/UserInfoEditActivity.java
  class UserInfoEditActivity (line 26) | public class UserInfoEditActivity extends BaseActivity implements View.O...
    method onCreate (line 40) | @Override
    method initData (line 49) | private void initData() {
    method initView (line 55) | private void initView() {
    method onClick (line 69) | @Override
    method onActivityResult (line 82) | @Override
    method compressAndUpload (line 113) | private void compressAndUpload(final Uri uri) {
    method uploadUserInfoSuccess (line 137) | @Override
    method setPresenter (line 142) | @Override
    method isActive (line 147) | @Override
    method showProgress (line 152) | @Override
    method dismissProgress (line 157) | @Override
    method showTip (line 162) | @Override

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/ui/userinfoedit/UserInfoEditContract.java
  type UserInfoEditContract (line 6) | public interface UserInfoEditContract {
    type View (line 8) | interface View extends BaseView<Presenter> {
      method uploadUserInfoSuccess (line 10) | void uploadUserInfoSuccess();
    type Presenter (line 14) | interface Presenter extends BasePresenter {
      method uploadAvatar (line 19) | void uploadAvatar(byte[] bytes);
      method updateNickname (line 24) | void updateNickname(String nickname);

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/ui/userinfoedit/UserInfoEditPresenter.java
  class UserInfoEditPresenter (line 19) | public class UserInfoEditPresenter implements UserInfoEditContract.Prese...
    method UserInfoEditPresenter (line 25) | public UserInfoEditPresenter(UserInfoEditContract.View view,
    method uploadAvatar (line 34) | @Override
    method updateUserAvatar (line 65) | public void updateUserAvatar(final String avatarUrl) {
    method updateNickname (line 99) | @Override

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/utils/UpdateUtils.java
  class UpdateUtils (line 51) | public class UpdateUtils {
    method checkUpdate (line 65) | public static void checkUpdate(final BaseActivity context,
    method showNoWifiConfirmDialog (line 132) | private static void showNoWifiConfirmDialog(final BaseActivity context...
    method showUpdateConfirmDialog (line 145) | private static void showUpdateConfirmDialog(final BaseActivity context...
    method startDownload (line 174) | private static void startDownload(BaseActivity context, AppUpdateInfo ...
    method getDownloadApkName (line 204) | @NonNull
    method getDownloadStatus (line 216) | private static int getDownloadStatus(BaseActivity context, AppUpdateIn...
    method getDownloadUriById (line 257) | public static Uri getDownloadUriById(Context context, long enqueueId) {

FILE: DesignResCollection_MVP-Dagger2/app/src/main/java/com/boredream/designrescollection/utils/UserInfoKeeper.java
  class UserInfoKeeper (line 13) | public class UserInfoKeeper {
    method getCurrentUser (line 20) | public static User getCurrentUser() {
    method setCurrentUser (line 27) | public static void setCurrentUser(User user) {
    method clearCurrentUser (line 34) | public static void clearCurrentUser() {
    method getToken (line 38) | public static String getToken() {
    method logout (line 50) | public static void logout() {
    method checkLogin (line 59) | public static boolean checkLogin(Context context) {

FILE: DesignResCollection_MVP-Dagger2/app/src/test/java/com/boredream/designrescollection/net/HttpRequestTest.java
  class HttpRequestTest (line 11) | public class HttpRequestTest {
    method setUp (line 13) | @Before
    method test (line 18) | @Test

FILE: DesignResCollection_MVP-Dagger2/app/src/test/java/com/boredream/designrescollection/ui/feedback/FeedBackPresenterTest.java
  class FeedBackPresenterTest (line 23) | public class FeedBackPresenterTest {
    method setupMocksAndView (line 37) | @Before
    method testAddFeedback_Success (line 54) | @Test
    method testAddFeedback_Mock_Success (line 66) | @Test
    method testAddFeedback_Mock_Error (line 80) | @Test

FILE: DesignResCollection_MVP-Dagger2/app/src/test/java/com/boredream/designrescollection/ui/home/HomePresenterTest.java
  class HomePresenterTest (line 17) | public class HomePresenterTest {
    method setupMocksAndView (line 24) | @Before
    method testPullToLoadList (line 38) | @Test
    method testLoadList (line 47) | @Test
    method testLoadList_overPage (line 57) | @Test

FILE: DesignResCollection_MVP-Dagger2/app/src/test/java/com/boredream/designrescollection/ui/login/LoginPresenterTest.java
  class LoginPresenterTest (line 19) | public class LoginPresenterTest {
    method setupMocksAndView (line 26) | @Before
    method testLogin_EmptyPassword (line 41) | @Test
    method testLogin_EmptyUsername (line 48) | @Test
    method testLogin_Success (line 55) | @Test
    method testLogin_UserNotExit (line 66) | @Test
    method testLogin_PswError (line 76) | @Test

FILE: DesignResCollection_MVP-Dagger2/app/src/test/java/com/boredream/designrescollection/ui/modifytext/ModifyTextPresenterTest.java
  class ModifyTextPresenterTest (line 13) | public class ModifyTextPresenterTest {
    method setupMocksAndView (line 20) | @Before
    method testModifyText_Empty1 (line 34) | @Test
    method testModifyText_Empty2 (line 44) | @Test
    method testModifyText_NoModify (line 54) | @Test
    method testModifyText_Success1 (line 64) | @Test
    method testModifyText_Success2 (line 74) | @Test
    method testModifyText_Success3 (line 84) | @Test

FILE: DesignResCollection_MVP-Dagger2/app/src/test/java/com/boredream/designrescollection/ui/register/RegisterPresenterTest.java
  class RegisterPresenterTest (line 14) | public class RegisterPresenterTest {
    method setupMocksAndView (line 21) | @Before
    method testRequestSms (line 35) | @Test
    method testRegister (line 47) | @Test

FILE: DesignResCollection_MVP-Dagger2/app/src/test/java/com/boredream/designrescollection/ui/userinfoedit/UserInfoEditPresenterTest.java
  class UserInfoEditPresenterTest (line 23) | public class UserInfoEditPresenterTest {
    method setupMocksAndView (line 33) | @Before
    method testFileUpload (line 49) | @Test
    method testUpdateNickname (line 72) | @Test

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/BoreConstants.java
  class BoreConstants (line 3) | public class BoreConstants {
    method BoreConstants (line 4) | private BoreConstants() {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/activity/ImageBrowserActivity.java
  class ImageBrowserActivity (line 16) | public class ImageBrowserActivity extends BoreBaseActivity {
    method onCreate (line 25) | @Override
    method initData (line 36) | private void initData() {
    method initView (line 41) | private void initView() {
    method setData (line 46) | private void setData() {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/activity/WebViewActivity.java
  class WebViewActivity (line 17) | public class WebViewActivity extends BoreBaseActivity {
    method onCreate (line 26) | @Override
    method initView (line 40) | @SuppressLint("SetJavaScriptEnabled")
    class MyWebClient (line 65) | private class MyWebClient extends WebViewClient {
      method onPageStarted (line 67) | @Override
      method onPageFinished (line 72) | @Override
      method shouldOverrideUrlLoading (line 79) | public boolean shouldOverrideUrlLoading(WebView view, String url) {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/adapter/BannerPagerAdapter.java
  class BannerPagerAdapter (line 21) | public class BannerPagerAdapter extends PagerAdapter {
    method BannerPagerAdapter (line 26) | public BannerPagerAdapter(Context context, ArrayList<? extends ImageUr...
    method getCount (line 31) | @Override
    method isViewFromObject (line 39) | @Override
    method destroyItem (line 44) | @Override
    method instantiateItem (line 49) | @Override

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/adapter/ImageBrowserAdapter.java
  class ImageBrowserAdapter (line 23) | public class ImageBrowserAdapter extends PagerAdapter {
    method ImageBrowserAdapter (line 28) | public ImageBrowserAdapter(Activity context, List<? extends ImageUrlIn...
    method getCount (line 33) | @Override
    method isViewFromObject (line 41) | @Override
    method instantiateItem (line 46) | @Override
    method destroyItem (line 100) | @Override

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/adapter/ListDropDownAdapter.java
  class ListDropDownAdapter (line 14) | public class ListDropDownAdapter extends BaseAdapter {
    method setCheckItem (line 20) | public void setCheckItem(int position) {
    method ListDropDownAdapter (line 25) | public ListDropDownAdapter(Context context, List<String> list) {
    method getCount (line 30) | @Override
    method getItem (line 35) | @Override
    method getItemId (line 40) | @Override
    method getView (line 45) | @Override
    method fillValue (line 59) | private void fillValue(int position, ViewHolder viewHolder) {
    class ViewHolder (line 72) | static class ViewHolder {
      method ViewHolder (line 75) | ViewHolder(View view) {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/adapter/LoadMoreAdapter.java
  class LoadMoreAdapter (line 19) | public class LoadMoreAdapter extends RecyclerView.Adapter {
    method LoadMoreAdapter (line 53) | public LoadMoreAdapter(RecyclerView recyclerView,
    method LoadMoreAdapter (line 60) | public LoadMoreAdapter(RecyclerView recyclerView,
    method getSrcAdapter (line 71) | public RecyclerView.Adapter getSrcAdapter() {
    method getStatus (line 75) | public int getStatus() {
    method setStatus (line 79) | public void setStatus(int status) {
    method getItemViewType (line 84) | @Override
    method getItemCount (line 94) | @Override
    class LoadMoreViewHolder (line 100) | public class LoadMoreViewHolder extends RecyclerView.ViewHolder {
      method LoadMoreViewHolder (line 105) | public LoadMoreViewHolder(View itemView) {
    method onCreateViewHolder (line 113) | @Override
    method onBindViewHolder (line 125) | @Override
    method handleFooter (line 137) | private void handleFooter(final LoadMoreViewHolder holder) {
    method setScrollListener (line 187) | private void setScrollListener() {
    method triggerLoadMore (line 224) | private synchronized void triggerLoadMore() {
    method onLoadMore (line 240) | protected void onLoadMore() {
    type OnLoadMoreListener (line 244) | public interface OnLoadMoreListener {
      method onLoadMore (line 245) | void onLoadMore();

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/adapter/SettingRecyclerAdapter.java
  class SettingRecyclerAdapter (line 23) | public class SettingRecyclerAdapter extends RecyclerView.Adapter<Recycle...
    method SettingRecyclerAdapter (line 30) | public SettingRecyclerAdapter(List<SettingItem> datas, AdapterView.OnI...
    method getItemCount (line 35) | @Override
    method getItemViewType (line 40) | @Override
    class ViewHolder (line 45) | public static class ViewHolder extends RecyclerView.ViewHolder {
      method ViewHolder (line 52) | public ViewHolder(final View itemView) {
    method onCreateViewHolder (line 62) | @Override
    method onBindViewHolder (line 68) | @Override

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/base/BoreBaseActivity.java
  class BoreBaseActivity (line 19) | public class BoreBaseActivity extends AppCompatActivity {
    method onCreate (line 24) | @Override
    method init (line 32) | private void init() {
    method initBackTitle (line 43) | protected TitleBuilder initBackTitle(String title) {
    method intent2Activity (line 60) | public void intent2Activity(Class<? extends Activity> tarActivity) {
    method showToast (line 65) | public void showToast(String msg) {
    method showLog (line 69) | public void showLog(String msg) {
    method showProgressDialog (line 73) | public void showProgressDialog() {
    method dismissProgressDialog (line 77) | public void dismissProgressDialog() {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/base/BoreBaseEntity.java
  class BoreBaseEntity (line 13) | public class BoreBaseEntity extends Pointer {
    method getCreatedAt (line 21) | public String getCreatedAt() {
    method setCreatedAt (line 25) | public void setCreatedAt(String createdAt) {
    method getUpdatedAt (line 29) | public String getUpdatedAt() {
    method setUpdatedAt (line 33) | public void setUpdatedAt(String updatedAt) {
    method equals (line 37) | @Override
    method toString (line 46) | @Override

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/db/AddressData.java
  class AddressData (line 15) | public class AddressData {
    method init (line 21) | public static void init(final Context context) {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/db/AssetsDatabaseManager.java
  class AssetsDatabaseManager (line 35) | public class AssetsDatabaseManager {
    method initManager (line 53) | public static void initManager(Context context){
    method getManager (line 63) | public static AssetsDatabaseManager getManager(){
    method AssetsDatabaseManager (line 67) | private AssetsDatabaseManager(Context context){
    method getDatabase (line 76) | public SQLiteDatabase getDatabase(String dbfile) {
    method getDatabaseFilepath (line 112) | private String getDatabaseFilepath(){
    method getDatabaseFile (line 116) | private String getDatabaseFile(String dbfile){
    method copyAssetsToFilesystem (line 120) | private boolean copyAssetsToFilesystem(String assetsSrc, String des){
    method closeDatabase (line 157) | public boolean closeDatabase(String dbfile){
    method closeAllDatabase (line 170) | static public void closeAllDatabase(){

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/AppUpdateInfo.java
  class AppUpdateInfo (line 5) | public class AppUpdateInfo extends BoreBaseEntity {
    method getVersion (line 11) | public int getVersion() {
    method setVersion (line 15) | public void setVersion(int version) {
    method getVersionName (line 19) | public String getVersionName() {
    method setVersionName (line 23) | public void setVersionName(String versionName) {
    method getFileUrl (line 27) | public String getFileUrl() {
    method setFileUrl (line 31) | public void setFileUrl(String fileUrl) {
    method getUpdateInfo (line 35) | public String getUpdateInfo() {
    method setUpdateInfo (line 39) | public void setUpdateInfo(String updateInfo) {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/ErrorResponse.java
  class ErrorResponse (line 3) | public class ErrorResponse {
    method setCode (line 8) | public void setCode(int code) {
    method setError (line 12) | public void setError(String error) {
    method getCode (line 16) | public int getCode() {
    method getError (line 20) | public String getError() {
    method toString (line 24) | @Override

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/FileInfo.java
  class FileInfo (line 5) | public class FileInfo extends BoreBaseEntity {
    method getCdn (line 10) | public String getCdn() {
    method setCdn (line 14) | public void setCdn(String cdn) {
    method getFiilename (line 18) | public String getFiilename() {
    method setFiilename (line 22) | public void setFiilename(String fiilename) {
    method getUrl (line 26) | public String getUrl() {
    method setUrl (line 30) | public void setUrl(String url) {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/FileUploadResponse.java
  class FileUploadResponse (line 3) | public class FileUploadResponse {
    method setFilename (line 8) | public void setFilename(String filename) {
    method setGroup (line 12) | public void setGroup(String group) {
    method setUrl (line 16) | public void setUrl(String url) {
    method getFilename (line 20) | public String getFilename() {
    method getGroup (line 24) | public String getGroup() {
    method getUrl (line 28) | public String getUrl() {
    method equals (line 32) | @Override

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/FormItem.java
  class FormItem (line 5) | public class FormItem {
    method FormItem (line 35) | public FormItem() {
    method getInputItem (line 39) | public static FormItem getInputItem(String leftText, String hint) {
    method getInputItem (line 43) | public static FormItem getInputItem(String leftText, String hint, int ...
    method getSelectItem (line 52) | public static FormItem getSelectItem(String leftText, int rightImg) {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/ImageUrlInterface.java
  type ImageUrlInterface (line 5) | public interface ImageUrlInterface extends Serializable {
    method getImageUrl (line 6) | String getImageUrl();
    method getImageTitle (line 7) | String getImageTitle();
    method getImageLink (line 8) | String getImageLink();

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/ListResponse.java
  class ListResponse (line 5) | public class ListResponse<T> {
    method getResults (line 8) | public ArrayList<T> getResults() {
    method setResults (line 12) | public void setResults(ArrayList<T> results) {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/PageIndex.java
  class PageIndex (line 10) | public class PageIndex {
    method getStartPage (line 32) | public int getStartPage() {
    method PageIndex (line 41) | public PageIndex(int startPage, int countPerPage) {
    method init (line 50) | public void init() {
    method success (line 57) | private void success() {
    method toStartPage (line 66) | public int toStartPage() {
    method toNextPage (line 76) | public int toNextPage() {
    method setResponse (line 89) | public <T> void setResponse(LoadMoreAdapter adapter, List<T> currentLi...

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/Pointer.java
  class Pointer (line 7) | public class Pointer implements Serializable {
    method Pointer (line 14) | public Pointer() {
    method Pointer (line 17) | public Pointer(String className, String objectId) {
    method get__type (line 23) | public String get__type() {
    method set__type (line 27) | public void set__type(String __type) {
    method getClassName (line 31) | public String getClassName() {
    method setClassName (line 35) | public void setClassName(String className) {
    method getObjectId (line 39) | public String getObjectId() {
    method setObjectId (line 43) | public void setObjectId(String objectId) {
    method parseToObject (line 53) | public <T> T parseToObject(Class<T> clazz) {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/Relation.java
  class Relation (line 7) | public class Relation implements Serializable {
    method Relation (line 11) | public Relation(Pointer pointer) {
    method Relation (line 15) | public Relation() {
    method add (line 18) | public void add(Pointer pointer) {
    method remove (line 22) | public void remove(Pointer pointer) {
    method get__op (line 27) | public String get__op() {
    method getObjects (line 31) | public List<Pointer> getObjects() {
    method setObjects (line 35) | public void setObjects(List<Pointer> objects) {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/RelationTo.java
  class RelationTo (line 3) | public class RelationTo {
    method getKey (line 9) | public String getKey() {
    method setKey (line 13) | public void setKey(String key) {
    method getObject (line 17) | public Pointer getObject() {
    method setObject (line 21) | public void setObject(Pointer object) {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/SettingItem.java
  class SettingItem (line 6) | public class SettingItem {
    method SettingItem (line 28) | public SettingItem() {
    method SettingItem (line 32) | public SettingItem(int leftImgRes, String midText, String rightText, i...

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/UpdatePswRequest.java
  class UpdatePswRequest (line 3) | public class UpdatePswRequest {
    method getOldPassword (line 7) | public String getOldPassword() {
    method setOldPassword (line 11) | public void setOldPassword(String oldPassword) {
    method getNewPassword (line 15) | public String getNewPassword() {
    method setNewPassword (line 19) | public void setNewPassword(String newPassword) {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/Where.java
  class Where (line 5) | public class Where {
    method getWhere (line 11) | public Map<String, String> getWhere() {
    method setWhere (line 15) | public void setWhere(Map<String, String> where) {
    method getClassName (line 19) | public String getClassName() {
    method setClassName (line 23) | public void setClassName(String className) {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/city/BaseAddressModel.java
  class BaseAddressModel (line 5) | public class BaseAddressModel implements Serializable {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/city/CityModel.java
  class CityModel (line 3) | public class CityModel extends BaseAddressModel {
    method equals (line 7) | @Override

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/fragment/FragmentController.java
  class FragmentController (line 13) | public class FragmentController {
    method FragmentController (line 19) | public FragmentController(AppCompatActivity activity, int containerId,...
    method initFragment (line 26) | public void initFragment() {
    method showFragment (line 34) | public void showFragment(int position) {
    method hideFragments (line 42) | public void hideFragments() {
    method getFragment (line 52) | public Fragment getFragment(int position) {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/net/ErrorConstants.java
  class ErrorConstants (line 6) | public class ErrorConstants {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/net/GlideCircleTransform.java
  class GlideCircleTransform (line 12) | public class GlideCircleTransform extends BitmapTransformation {
    method GlideCircleTransform (line 13) | public GlideCircleTransform(Context context) {
    method transform (line 17) | protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int ou...
    method circleCrop (line 21) | private static Bitmap circleCrop(BitmapPool pool, Bitmap source) {
    method getId (line 41) | @Override

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/net/MultiPageRequest.java
  class MultiPageRequest (line 5) | public abstract class MultiPageRequest<T> {
    method request (line 7) | public abstract Observable<T> request(int page);

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/net/ObservableDecorator.java
  class ObservableDecorator (line 14) | public class ObservableDecorator {
    method decorate (line 16) | public static <T> Observable<T> decorate(Observable<T> observable) {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/net/RoundedCornersTransformation.java
  class RoundedCornersTransformation (line 32) | public class RoundedCornersTransformation implements Transformation<Bitm...
    type CornerType (line 34) | public enum CornerType {
    method RoundedCornersTransformation (line 48) | public RoundedCornersTransformation(Context context, int radius, int m...
    method RoundedCornersTransformation (line 52) | public RoundedCornersTransformation(BitmapPool pool, int radius, int m...
    method RoundedCornersTransformation (line 56) | public RoundedCornersTransformation(Context context, int radius, int m...
    method RoundedCornersTransformation (line 61) | public RoundedCornersTransformation(BitmapPool pool, int radius, int m...
    method transform (line 70) | @Override
    method drawRoundRect (line 90) | private void drawRoundRect(Canvas canvas, Paint paint, float width, fl...
    method drawTopLeftRoundRect (line 146) | private void drawTopLeftRoundRect(Canvas canvas, Paint paint, float ri...
    method drawTopRightRoundRect (line 153) | private void drawTopRightRoundRect(Canvas canvas, Paint paint, float r...
    method drawBottomLeftRoundRect (line 160) | private void drawBottomLeftRoundRect(Canvas canvas, Paint paint, float...
    method drawBottomRightRoundRect (line 167) | private void drawBottomRightRoundRect(Canvas canvas, Paint paint, floa...
    method drawTopRoundRect (line 174) | private void drawTopRoundRect(Canvas canvas, Paint paint, float right,...
    method drawBottomRoundRect (line 180) | private void drawBottomRoundRect(Canvas canvas, Paint paint, float rig...
    method drawLeftRoundRect (line 186) | private void drawLeftRoundRect(Canvas canvas, Paint paint, float right...
    method drawRightRoundRect (line 192) | private void drawRightRoundRect(Canvas canvas, Paint paint, float righ...
    method drawOtherTopLeftRoundRect (line 198) | private void drawOtherTopLeftRoundRect(Canvas canvas, Paint paint, flo...
    method drawOtherTopRightRoundRect (line 206) | private void drawOtherTopRightRoundRect(Canvas canvas, Paint paint, fl...
    method drawOtherBottomLeftRoundRect (line 214) | private void drawOtherBottomLeftRoundRect(Canvas canvas, Paint paint, ...
    method drawOtherBottomRightRoundRect (line 222) | private void drawOtherBottomRightRoundRect(Canvas canvas, Paint paint,...
    method drawDiagonalFromTopLeftRoundRect (line 231) | private void drawDiagonalFromTopLeftRoundRect(Canvas canvas, Paint pai...
    method drawDiagonalFromTopRightRoundRect (line 241) | private void drawDiagonalFromTopRightRoundRect(Canvas canvas, Paint pa...
    method getId (line 251) | @Override public String getId() {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/present/FormItemsPresent.java
  class FormItemsPresent (line 19) | public class FormItemsPresent {
    type OnSelectItemClickListener (line 21) | public interface OnSelectItemClickListener {
      method onSelectItemClick (line 22) | void onSelectItemClick(String leftText);
    method FormItemsPresent (line 29) | public FormItemsPresent(LinearLayout ll_container) {
    method load (line 34) | public void load(List<FormItem> items, Integer[] emptyIndexs,
    method getItemView (line 88) | public ViewGroup getItemView(String leftText) {
    method getString (line 93) | public String getString(String leftText) {
    method showMidContainer (line 99) | public LinearLayout showMidContainer(String leftText) {
    method showMidText (line 108) | public TextView showMidText(String leftText, String midText) {
    method validate (line 118) | public boolean validate() {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/present/GroupEtEmptyCheckPresent.java
  class GroupEtEmptyCheckPresent (line 8) | public class GroupEtEmptyCheckPresent {
    type OnEtEmptyListener (line 12) | public interface OnEtEmptyListener {
      method onEtEmpty (line 13) | void onEtEmpty(boolean hasOneEmpty);
    method GroupEtEmptyCheckPresent (line 16) | public GroupEtEmptyCheckPresent(EditText... ets) {
    method check (line 20) | public void check(final OnEtEmptyListener listener) {
    method checkAllEt (line 41) | private void checkAllEt(OnEtEmptyListener listener, EditText[] ets) {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/present/ImageBannerPresent.java
  class ImageBannerPresent (line 19) | public class ImageBannerPresent {
    method ImageBannerPresent (line 35) | public ImageBannerPresent(Context context, View include_banner_with_in...
    method load (line 67) | public void load(ArrayList<? extends ImageUrlInterface> images) {
    method startAutoScroll (line 77) | public void startAutoScroll() {
    method stopAutoScroll (line 86) | public void stopAutoScroll() {
    method setIndicator (line 91) | private void setIndicator() {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/present/ImageBrowserPresent.java
  class ImageBrowserPresent (line 12) | public class ImageBrowserPresent {
    method ImageBrowserPresent (line 21) | public ImageBrowserPresent(Activity activity, ImageBrowserAdapter adap...
    method init (line 29) | public void init() {
    method initData (line 34) | private void initData() {
    method setData (line 39) | private void setData() {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/present/MultiPageLoadPresent.java
  class MultiPageLoadPresent (line 24) | public class MultiPageLoadPresent {
    method getRv (line 33) | public RecyclerView getRv() {
    method MultiPageLoadPresent (line 37) | public MultiPageLoadPresent(Activity activity, View include_refresh_li...
    method initView (line 44) | private void initView() {
    method setItemDecoration (line 55) | public void setItemDecoration(RecyclerView.ItemDecoration itemDecorati...
    method setDatas (line 68) | public void setDatas(ArrayList datas) {
    method load (line 78) | public <T> Subscription load(RecyclerView.Adapter adapter,
    method setStatus (line 106) | public void setStatus(int status) {
    method notifyDataSetChanged (line 112) | public void notifyDataSetChanged() {
    method initPage (line 118) | public void initPage() {
    method isRefreshing (line 122) | public boolean isRefreshing() {
    method setRefreshing (line 126) | public void setRefreshing(final boolean refreshing) {
    method loadData (line 140) | private Subscription loadData(final int page) {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/ActivityUtils.java
  class ActivityUtils (line 26) | public class ActivityUtils {
    method addFragmentToActivity (line 32) | public static void addFragmentToActivity(FragmentManager fragmentManager,

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/AppUtils.java
  class AppUtils (line 18) | public class AppUtils {
    method getAppVersionName (line 23) | public static String getAppVersionName(Context context) {
    method getAppVersionCode (line 42) | public static int getAppVersionCode(Context context) {
    method getIMEI (line 55) | public static String getIMEI(Context context) {
    method openSoftInput (line 63) | public static void openSoftInput(EditText et) {
    method hideSoftInput (line 71) | public static void hideSoftInput(EditText et) {
    method getSDPath (line 81) | public static File getSDPath() {
    method promptInstall (line 95) | public static void promptInstall(Context context, Uri data) {
    method copy2clipboard (line 103) | public static void copy2clipboard(Context context, String text){

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/DateUtils.java
  class DateUtils (line 15) | public class DateUtils {
    method getShortTime (line 29) | public static String getShortTime(String dateStr) {
    method getDate (line 58) | public static String getDate(String date) {
    method addMonth (line 70) | public static String addMonth(String date, int moonCount) {
    method calculateDayDiff (line 84) | public static int calculateDayDiff(Date targetTime, Date compareTime) {
    method calculateDayDiffOfSameYear (line 105) | public static int calculateDayDiffOfSameYear(Date targetTime, Date com...
    method calculateYearDiff (line 124) | public static int calculateYearDiff(Date targetTime, Date compareTime) {
    method calculateMonthDiff (line 147) | public static int calculateMonthDiff(String targetTime, String compare...
    method calculateMonthDiff (line 159) | public static int calculateMonthDiff(Date targetTime, Date compareTime) {
    method isSameYear (line 176) | public static boolean isSameYear(Date targetTime, Date compareTime) {
    method str2date (line 192) | public static Date str2date(String str, String format) {
    method str2date (line 205) | public static Date str2date(String str) {
    method date2str (line 209) | public static String date2str(Date date) {
    method date2str (line 213) | public static String date2str(Date date, String format) {
    method str2calendar (line 218) | public static Calendar str2calendar(String str) {
    method str2calendar (line 229) | public static Calendar str2calendar(String str, String format) {
    method calendar2str (line 239) | public static String calendar2str(Calendar calendar) {
    method calendar2str (line 243) | public static String calendar2str(Calendar calendar, String format) {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/DialogUtils.java
  class DialogUtils (line 14) | public class DialogUtils {
    method createProgressDialog (line 16) | public static Dialog createProgressDialog(Context context) {
    method createProgressDialog (line 20) | public static Dialog createProgressDialog(Context context, boolean nee...
    method showCommonDialog (line 28) | public static Dialog showCommonDialog(Context context, String message,
    method showConfirmDialog (line 37) | public static Dialog showConfirmDialog(Context context, String message,

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/DisplayUtils.java
  class DisplayUtils (line 7) | public class DisplayUtils {
    method px2dp (line 11) | public static int px2dp(Context context, float pxValue) {
    method dp2px (line 19) | public static int dp2px(Context context, float dpValue) {
    method px2sp (line 27) | public static int px2sp(Context context, float pxValue) {
    method sp2px (line 35) | public static int sp2px(Context context, float dpValue) {
    method getScreenWidthPixels (line 43) | public static int getScreenWidthPixels(Activity context) {
    method getScreenHeightPixels (line 52) | public static int getScreenHeightPixels(Activity context) {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/ErrorInfoUtils.java
  class ErrorInfoUtils (line 13) | public class ErrorInfoUtils {
    method parseHttpErrorInfo (line 18) | public static String parseHttpErrorInfo(Throwable throwable) {
    method getLocalErrorInfo (line 51) | private static String getLocalErrorInfo(ErrorResponse error) {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/ImageUtils.java
  class ImageUtils (line 27) | public class ImageUtils {
    method showImagePickDialog (line 57) | public static void showImagePickDialog(final Activity activity) {
    method showImagePickDialog (line 64) | public static void showImagePickDialog(final Activity activity, final ...
    method pickImageFromCamera (line 92) | @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
    method pickImageFromCamera (line 106) | public static void pickImageFromCamera(final Activity activity) {
    method pickImageFromAlbum (line 113) | @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
    method pickImageFromAlbum (line 124) | public static void pickImageFromAlbum(final Activity activity) {
    method compressImage (line 137) | public static Observable<byte[]> compressImage(final Context context,
    method cropImage (line 170) | public static void cropImage(Activity activity, Uri srcUri) {
    method createImageUri (line 207) | private static Uri createImageUri(Context context) {
    method deleteImageUri (line 220) | public static void deleteImageUri(Context context, Uri uri) {
    method openImageByOtherApp (line 227) | public static void openImageByOtherApp(Context context, Uri imageUri) {
    method getImageAbsolutePath19 (line 237) | public static String getImageAbsolutePath19(Context context, Uri image...
    method getDataColumn (line 285) | private static String getDataColumn(Context context, Uri uri, String s...
    method isExternalStorageDocument (line 306) | private static boolean isExternalStorageDocument(Uri uri) {
    method isDownloadsDocument (line 314) | private static boolean isDownloadsDocument(Uri uri) {
    method isMediaDocument (line 322) | private static boolean isMediaDocument(Uri uri) {
    method isGooglePhotosUri (line 330) | private static boolean isGooglePhotosUri(Uri uri) {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/LogUtils.java
  class LogUtils (line 5) | public class LogUtils {
    method showLog (line 7) | public static void showLog(String log) {
    method showLog (line 11) | public static void showLog(String tag, String log) {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/NetUtils.java
  class NetUtils (line 10) | public class NetUtils {
    method NetUtils (line 12) | private NetUtils() {
    method isConnected (line 20) | public static boolean isConnected(Context context) {
    method isWifi (line 40) | public static boolean isWifi(Context context) {
    method openSetting (line 61) | public static void openSetting(Activity activity, int requestCode) {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/StringUtils.java
  class StringUtils (line 12) | public class StringUtils {
    method isEmpty (line 14) | public static boolean isEmpty(CharSequence str) {
    method getMoney (line 18) | public static String getMoney(float cost) {
    class PrimaryClickableSpan (line 23) | public static class PrimaryClickableSpan extends ClickableSpan {
      method PrimaryClickableSpan (line 27) | public PrimaryClickableSpan(Context context) {
      method onClick (line 31) | @Override
      method updateDrawState (line 36) | @Override

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/TitleBuilder.java
  class TitleBuilder (line 20) | public class TitleBuilder {
    method getRootView (line 29) | public View getRootView() {
    method getTvTitle (line 33) | public TextView getTvTitle() {
    method getIvLeft (line 37) | public ImageView getIvLeft() {
    method getIvRight (line 41) | public ImageView getIvRight() {
    method getTvLeft (line 45) | public TextView getTvLeft() {
    method getTvRight (line 49) | public TextView getTvRight() {
    method TitleBuilder (line 56) | public TitleBuilder(Activity context) {
    method TitleBuilder (line 71) | public TitleBuilder(View context) {
    method setTitleBgRes (line 84) | public TitleBuilder setTitleBgRes(int resid) {
    method setTitleText (line 89) | public TitleBuilder setTitleText(String text) {
    method setLeftImage (line 97) | public TitleBuilder setLeftImage(int resId) {
    method setLeftText (line 103) | public TitleBuilder setLeftText(String text) {
    method setLeftOnClickListener (line 109) | public TitleBuilder setLeftOnClickListener(OnClickListener listener) {
    method setRightImage (line 119) | public TitleBuilder setRightImage(int resId) {
    method setRightText (line 125) | public TitleBuilder setRightText(String text) {
    method setRightTextColor (line 132) | public TitleBuilder setRightTextColor(Context context, int resId) {
    method setTitleTextColor (line 137) | public TitleBuilder setTitleTextColor(Context context, int resId) {
    method setRightOnClickListener (line 143) | public TitleBuilder setRightOnClickListener(OnClickListener listener) {
    method build (line 152) | public View build() {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/ToastUtils.java
  class ToastUtils (line 6) | public class ToastUtils {
    method showToast (line 13) | public static void showToast(Context context, CharSequence text, int d...
    method showToast (line 23) | public static void showToast(Context context, CharSequence text) {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/ViewUtils.java
  class ViewUtils (line 3) | public class ViewUtils {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/AddressWheelDialog.java
  class AddressWheelDialog (line 18) | public class AddressWheelDialog extends Dialog implements OnWheelChanged...
    method AddressWheelDialog (line 27) | public AddressWheelDialog(Context context) {
    method initViews (line 34) | private void initViews() {
    method initData (line 54) | private void initData() {
    method onChanged (line 61) | @Override
    method updateCities (line 68) | private void updateCities() {
    method setOnAddressSelectListener (line 81) | public void setOnAddressSelectListener(OnAddressSelectListener onAddre...
    type OnAddressSelectListener (line 85) | public interface OnAddressSelectListener {
      method onAddressSelected (line 86) | void onAddressSelected(CityModel address);

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/BottomTabRadioButton.java
  class BottomTabRadioButton (line 18) | public class BottomTabRadioButton extends RadioButton {
    method getHint_mode (line 99) | public int getHint_mode() {
    method setHint_mode (line 103) | public void setHint_mode(int hint_mode) {
    method getHint_color (line 108) | public int getHint_color() {
    method setHint_color (line 112) | public void setHint_color(int hint_color) {
    method getHint_toppadding (line 117) | public int getHint_toppadding() {
    method setHint_toppadding (line 121) | public void setHint_toppadding(int hint_toppadding) {
    method getHint_rightpadding (line 126) | public int getHint_rightpadding() {
    method setHint_rightpadding (line 130) | public void setHint_rightpadding(int hint_rightpadding) {
    method getPoint_radius (line 135) | public int getPoint_radius() {
    method setPoint_radius (line 139) | public void setPoint_radius(int point_radius) {
    method getNum (line 144) | public int getNum() {
    method setNum (line 148) | public void setNum(int num) {
    method getNum_radius (line 153) | public int getNum_radius() {
    method setNum_radius (line 157) | public void setNum_radius(int num_radius) {
    method getNum_size (line 162) | public int getNum_size() {
    method setNum_size (line 166) | public void setNum_size(int num_size) {
    method getNum_color (line 171) | public int getNum_color() {
    method setNum_color (line 175) | public void setNum_color(int num_color) {
    method BottomTabRadioButton (line 180) | public BottomTabRadioButton(Context context) {
    method BottomTabRadioButton (line 184) | public BottomTabRadioButton(Context context, AttributeSet attrs) {
    method BottomTabRadioButton (line 189) | public BottomTabRadioButton(Context context, AttributeSet attrs, int d...
    method BottomTabRadioButton (line 194) | @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    method initView (line 200) | private void initView(AttributeSet attrs) {
    method onDraw (line 252) | @Override

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/CheckableLinearLayout.java
  class CheckableLinearLayout (line 16) | public class CheckableLinearLayout extends LinearLayout implements Check...
    method CheckableLinearLayout (line 21) | public CheckableLinearLayout(Context context, AttributeSet attrs) {
    method isChecked (line 25) | public boolean isChecked() {
    method setChecked (line 29) | public void setChecked(boolean b) {
    method toggle (line 36) | public void toggle() {
    method onCreateDrawableState (line 40) | @Override

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/DividerItemDecoration.java
  class DividerItemDecoration (line 31) | public class DividerItemDecoration extends RecyclerView.ItemDecoration {
    method DividerItemDecoration (line 41) | public DividerItemDecoration(Context context) {
    method setIgnorePositions (line 50) | public void setIgnorePositions(Integer[] ignorePositions) {
    method onDraw (line 54) | @Override
    method drawVertical (line 59) | public void drawVertical(Canvas c, RecyclerView parent) {
    method getItemOffsets (line 81) | @Override

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/DrawableRadioButton.java
  class DrawableRadioButton (line 12) | public class DrawableRadioButton extends RadioButton {
    method DrawableRadioButton (line 17) | public DrawableRadioButton(Context context) {
    method DrawableRadioButton (line 21) | public DrawableRadioButton(Context context, AttributeSet attrs) {
    method DrawableRadioButton (line 27) | public DrawableRadioButton(Context context, AttributeSet attrs, int de...
    method initView (line 33) | private void initView(Context context, AttributeSet attrs) {
    method setDrawables (line 53) | public void setDrawables(Drawable[] drawables) {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/DrawableTextView.java
  class DrawableTextView (line 12) | public class DrawableTextView extends TextView {
    method DrawableTextView (line 17) | public DrawableTextView(Context context, AttributeSet attrs, int defSt...
    method setDrawables (line 39) | public void setDrawables(Drawable[] drawables) {
    method DrawableTextView (line 59) | public DrawableTextView(Context context, AttributeSet attrs) {
    method DrawableTextView (line 63) | public DrawableTextView(Context context) {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/DropDownMenu.java
  class DropDownMenu (line 23) | public class DropDownMenu extends LinearLayout {
    method DropDownMenu (line 53) | public DropDownMenu(Context context) {
    method DropDownMenu (line 57) | public DropDownMenu(Context context, AttributeSet attrs) {
    method DropDownMenu (line 61) | @TargetApi(Build.VERSION_CODES.HONEYCOMB)
    method setDropDownMenu (line 110) | public void setDropDownMenu(List<String> tabTexts, List<View> popupVie...
    method addTab (line 144) | private void addTab(List<String> tabTexts, int i) {
    method setTabText (line 180) | public void setTabText(String text) {
    method setTabClickable (line 186) | public void setTabClickable(boolean clickable) {
    method closeMenu (line 195) | public void closeMenu() {
    method isShowing (line 214) | public boolean isShowing() {
    method switchMenu (line 223) | private void switchMenu(View target) {
    method dpTpPx (line 252) | public int dpTpPx(float value) {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/EmptyItemDecoration.java
  class EmptyItemDecoration (line 26) | public class EmptyItemDecoration extends RecyclerView.ItemDecoration {
    method EmptyItemDecoration (line 34) | public EmptyItemDecoration(int height) {
    method EmptyItemDecoration (line 38) | public EmptyItemDecoration(Integer[] dividerPositions, int height) {
    method getItemOffsets (line 43) | @Override

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/GridSpacingDecorator.java
  class GridSpacingDecorator (line 7) | public class GridSpacingDecorator extends RecyclerView.ItemDecoration {
    method GridSpacingDecorator (line 11) | public GridSpacingDecorator(int space) {
    method getItemOffsets (line 15) | @Override

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/PinnedSectionListView.java
  class PinnedSectionListView (line 44) | public class PinnedSectionListView extends ListView {
    type PinnedSectionListAdapter (line 50) | public static interface PinnedSectionListAdapter extends ListAdapter {
      method isItemViewTypePinned (line 52) | boolean isItemViewTypePinned(int viewType);
    class PinnedSection (line 56) | static class PinnedSection {
    method onScrollStateChanged (line 94) | @Override public void onScrollStateChanged(AbsListView view, int scrol...
    method onScroll (line 100) | @Override
    method onChanged (line 152) | @Override public void onChanged() {
    method onInvalidated (line 155) | @Override public void onInvalidated() {
    method PinnedSectionListView (line 162) | public PinnedSectionListView(Context context, AttributeSet attrs) {
    method PinnedSectionListView (line 167) | public PinnedSectionListView(Context context, AttributeSet attrs, int ...
    method initView (line 172) | private void initView() {
    method setShadowVisible (line 180) | public void setShadowVisible(boolean visible) {
    method initShadow (line 190) | public void initShadow(boolean visible) {
    method createPinnedShadow (line 206) | void createPinnedShadow(int position) {
    method destroyPinnedShadow (line 253) | void destroyPinnedShadow() {
    method ensureShadowForPosition (line 262) | void ensureShadowForPosition(int sectionPosition, int firstVisibleItem...
    method findFirstVisibleSectionPosition (line 302) | int findFirstVisibleSectionPosition(int firstVisibleItem, int visibleI...
    method findCurrentSectionPosition (line 320) | int findCurrentSectionPosition(int fromPosition) {
    method recreatePinnedShadow (line 344) | void recreatePinnedShadow() {
    method setOnScrollListener (line 356) | @Override
    method onRestoreInstanceState (line 365) | @Override
    method setAdapter (line 375) | @Override
    method onLayout (line 398) | @Override
    method dispatchDraw (line 410) | @Override
    method dispatchTouchEvent (line 445) | @Override
    method isPinnedViewTouched (line 503) | private boolean isPinnedViewTouched(View view, float x, float y) {
    method clearTouchTarget (line 516) | private void clearTouchTarget() {
    method performPinnedItemClick (line 524) | private boolean performPinnedItemClick() {
    method isItemViewTypePinned (line 540) | public static boolean isItemViewTypePinned(ListAdapter adapter, int vi...

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/PositionBar.java
  class PositionBar (line 14) | @SuppressLint("ClickableViewAccessibility")
    method setOnPositionChangedListener (line 23) | public void setOnPositionChangedListener(OnPositionChangedListener lis...
    method PositionBar (line 27) | public PositionBar(Context context, AttributeSet attrs) {
    method setItems (line 34) | public void setItems(String[] items) {
    method getItems (line 49) | public String[] getItems() {
    method PositionBar (line 53) | public PositionBar(Context context) {
    method onTouchEvent (line 57) | @Override
    method findChildByLocation (line 88) | private TextView findChildByLocation(float x, float y) {
    type OnPositionChangedListener (line 102) | public interface OnPositionChangedListener {
      method onPositionSelected (line 103) | void onPositionSelected(String key);

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/WrapHeightGridView.java
  class WrapHeightGridView (line 7) | public class WrapHeightGridView extends GridView {
    method WrapHeightGridView (line 9) | public WrapHeightGridView(Context context) {
    method WrapHeightGridView (line 13) | public WrapHeightGridView(Context context, AttributeSet attrs) {
    method WrapHeightGridView (line 17) | public WrapHeightGridView(Context context, AttributeSet attrs, int def...
    method onMeasure (line 21) | @Override

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/WrapHeightLinearLayoutManager.java
  class WrapHeightLinearLayoutManager (line 12) | public class WrapHeightLinearLayoutManager extends LinearLayoutManager {
    method WrapHeightLinearLayoutManager (line 14) | public WrapHeightLinearLayoutManager(Context context, int orientation,...
    method onMeasure (line 20) | @Override
    method measureScrapChild (line 64) | private void measureScrapChild(RecyclerView.Recycler recycler, int pos...

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/WrapHeightListView.java
  class WrapHeightListView (line 7) | public class WrapHeightListView extends ListView {
    method WrapHeightListView (line 9) | public WrapHeightListView(Context context) {
    method WrapHeightListView (line 13) | public WrapHeightListView(Context context, AttributeSet attrs) {
    method WrapHeightListView (line 17) | public WrapHeightListView(Context context, AttributeSet attrs, int def...
    method onMeasure (line 21) | @Override

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/ItemsRange.java
  class ItemsRange (line 25) | public class ItemsRange {
    method ItemsRange (line 35) | public ItemsRange() {
    method ItemsRange (line 44) | public ItemsRange(int first, int count) {
    method getFirst (line 53) | public int getFirst() {
    method getLast (line 61) | public int getLast() {
    method getCount (line 69) | public int getCount() {
    method contains (line 78) | public boolean contains(int index) {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/OnWheelChangedListener.java
  type OnWheelChangedListener (line 25) | public interface OnWheelChangedListener {
    method onChanged (line 32) | void onChanged(WheelView wheel, int oldValue, int newValue);

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/OnWheelClickedListener.java
  type OnWheelClickedListener (line 25) | public interface OnWheelClickedListener {
    method onItemClicked (line 31) | void onItemClicked(WheelView wheel, int itemIndex);

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/OnWheelScrollListener.java
  type OnWheelScrollListener (line 22) | public interface OnWheelScrollListener {
    method onScrollingStarted (line 27) | void onScrollingStarted(WheelView wheel);
    method onScrollingFinished (line 33) | void onScrollingFinished(WheelView wheel);

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/WheelAdapter.java
  type WheelAdapter (line 24) | public interface WheelAdapter {
    method getItemsCount (line 29) | public int getItemsCount();
    method getItem (line 37) | public String getItem(int index);
    method getMaximumLength (line 45) | public int getMaximumLength();

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/WheelRecycle.java
  class WheelRecycle (line 31) | public class WheelRecycle {
    method WheelRecycle (line 45) | public WheelRecycle(WheelView wheel) {
    method recycleItems (line 59) | public int recycleItems(LinearLayout layout, int firstItem, ItemsRange...
    method getItem (line 80) | public View getItem() {
    method getEmptyItem (line 88) | public View getEmptyItem() {
    method clearAll (line 95) | public void clearAll() {
    method addView (line 110) | private List<View> addView(View view, List<View> cache) {
    method recycleView (line 124) | private void recycleView(View view, int index) {
    method getCachedView (line 144) | private View getCachedView(List<View> cache) {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/WheelScroller.java
  class WheelScroller (line 34) | public class WheelScroller {
    type ScrollingListener (line 38) | public interface ScrollingListener {
      method onScroll (line 43) | void onScroll(int distance);
      method onStarted (line 48) | void onStarted();
      method onFinished (line 53) | void onFinished();
      method onJustify (line 58) | void onJustify();
    method WheelScroller (line 85) | public WheelScroller(Context context, ScrollingListener listener) {
    method setInterpolator (line 99) | public void setInterpolator(Interpolator interpolator) {
    method scroll (line 109) | public void scroll(int distance, int time) {
    method stopScrolling (line 123) | public void stopScrolling() {
    method onTouchEvent (line 132) | public boolean onTouchEvent(MotionEvent event) {
    method onScroll (line 160) | public boolean onScroll(MotionEvent e1, MotionEvent e2, float distance...
    method onFling (line 166) | public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX...
    method setNextMessage (line 185) | private void setNextMessage(int message) {
    method clearMessages (line 193) | private void clearMessages() {
    method handleMessage (line 200) | public void handleMessage(Message msg) {
    method justify (line 228) | private void justify() {
    method startScrolling (line 236) | private void startScrolling() {
    method finishScrolling (line 246) | void finishScrolling() {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/WheelView.java
  class WheelView (line 47) | public class WheelView extends View {
    method WheelView (line 117) | public WheelView(Context context, AttributeSet attrs, int defStyle) {
    method WheelView (line 125) | public WheelView(Context context, AttributeSet attrs) {
    method WheelView (line 133) | public WheelView(Context context) {
    method initData (line 142) | private void initData(Context context) {
    method onStarted (line 148) | @Override
    method onScroll (line 154) | @Override
    method onFinished (line 168) | @Override
    method onJustify (line 179) | @Override
    method setInterpolator (line 191) | public void setInterpolator(Interpolator interpolator) {
    method getVisibleItems (line 200) | public int getVisibleItems() {
    method setVisibleItems (line 211) | public void setVisibleItems(int count) {
    method getViewAdapter (line 219) | public WheelViewAdapter getViewAdapter() {
    method onChanged (line 225) | @Override
    method onInvalidated (line 230) | @Override
    method setViewAdapter (line 242) | public void setViewAdapter(WheelViewAdapter viewAdapter) {
    method addChangingListener (line 258) | public void addChangingListener(OnWheelChangedListener listener) {
    method removeChangingListener (line 266) | public void removeChangingListener(OnWheelChangedListener listener) {
    method notifyChangingListeners (line 275) | protected void notifyChangingListeners(int oldValue, int newValue) {
    method addScrollingListener (line 285) | public void addScrollingListener(OnWheelScrollListener listener) {
    method removeScrollingListener (line 293) | public void removeScrollingListener(OnWheelScrollListener listener) {
    method notifyScrollingListenersAboutStart (line 300) | protected void notifyScrollingListenersAboutStart() {
    method notifyScrollingListenersAboutEnd (line 309) | protected void notifyScrollingListenersAboutEnd() {
    method addClickingListener (line 319) | public void addClickingListener(OnWheelClickedListener listener) {
    method removeClickingListener (line 327) | public void removeClickingListener(OnWheelClickedListener listener) {
    method notifyClickListenersAboutClick (line 334) | protected void notifyClickListenersAboutClick(int item) {
    method getCurrentItem (line 345) | public int getCurrentItem() {
    method setCurrentItem (line 355) | public void setCurrentItem(int index, boolean animated) {
    method setCurrentItem (line 399) | public void setCurrentItem(int index) {
    method isCyclic (line 407) | public boolean isCyclic() {
    method setCyclic (line 415) | public void setCyclic(boolean isCyclic) {
    method drawShadows (line 424) | public boolean drawShadows() {
    method setDrawShadows (line 432) | public void setDrawShadows(boolean drawShadows) {
    method setShadowColor (line 442) | public void setShadowColor(int start, int middle, int end) {
    method setWheelBackground (line 450) | public void setWheelBackground(int resource) {
    method setWheelForeground (line 459) | public void setWheelForeground(int resource) {
    method invalidateWheel (line 468) | public void invalidateWheel(boolean clearCaches) {
    method initResourcesIfNecessary (line 486) | private void initResourcesIfNecessary() {
    method getDesiredHeight (line 509) | private int getDesiredHeight(LinearLayout layout) {
    method getItemHeight (line 523) | private int getItemHeight() {
    method calculateLayoutWidth (line 542) | private int calculateLayoutWidth(int widthSize, int mode) {
    method onMeasure (line 570) | @Override
    method onLayout (line 595) | @Override
    method layout (line 605) | private void layout(int width, int height) {
    method onDraw (line 611) | @Override
    method drawShadows (line 629) | private void drawShadows(Canvas canvas) {
    method drawItems (line 646) | private void drawItems(Canvas canvas) {
    method drawCenterRect (line 661) | private void drawCenterRect(Canvas canvas) {
    method onTouchEvent (line 681) | @Override
    method doScroll (line 717) | private void doScroll(int delta) {
    method scroll (line 779) | public void scroll(int itemsToScroll, int time) {
    method getItemsRange (line 788) | private ItemsRange getItemsRange() {
    method rebuildItems (line 820) | private boolean rebuildItems() {
    method updateView (line 861) | private void updateView() {
    method createItemsLayout (line 871) | private void createItemsLayout() {
    method buildViewForMeasuring (line 881) | private void buildViewForMeasuring() {
    method addViewItem (line 904) | private boolean addViewItem(int index, boolean first) {
    method isValidItemIndex (line 924) | private boolean isValidItemIndex(int index) {
    method getItemView (line 934) | private View getItemView(int index) {
    method stopScrolling (line 954) | public void stopScrolling() {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/adapters/AbstractWheelAdapter.java
  class AbstractWheelAdapter (line 29) | public abstract class AbstractWheelAdapter implements WheelViewAdapter {
    method getEmptyItem (line 33) | @Override
    method registerDataSetObserver (line 38) | @Override
    method unregisterDataSetObserver (line 46) | @Override
    method notifyDataChangedEvent (line 56) | protected void notifyDataChangedEvent() {
    method notifyDataInvalidatedEvent (line 67) | protected void notifyDataInvalidatedEvent() {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/adapters/AbstractWheelTextAdapter.java
  class AbstractWheelTextAdapter (line 30) | public abstract class AbstractWheelTextAdapter extends AbstractWheelAdap...
    method AbstractWheelTextAdapter (line 67) | protected AbstractWheelTextAdapter(Context context) {
    method AbstractWheelTextAdapter (line 76) | protected AbstractWheelTextAdapter(Context context, int itemResource) {
    method AbstractWheelTextAdapter (line 86) | protected AbstractWheelTextAdapter(Context context, int itemResource, ...
    method getTextColor (line 98) | public int getTextColor() {
    method setTextColor (line 106) | public void setTextColor(int textColor) {
    method getTextSize (line 114) | public int getTextSize() {
    method setTextSize (line 122) | public void setTextSize(int textSize) {
    method getItemResource (line 130) | public int getItemResource() {
    method setItemResource (line 138) | public void setItemResource(int itemResourceId) {
    method getItemTextResource (line 146) | public int getItemTextResource() {
    method setItemTextResource (line 154) | public void setItemTextResource(int itemTextResourceId) {
    method getEmptyItemResource (line 162) | public int getEmptyItemResource() {
    method setEmptyItemResource (line 170) | public void setEmptyItemResource(int emptyItemResourceId) {
    method getItemText (line 180) | protected abstract CharSequence getItemText(int index);
    method getItem (line 182) | @Override
    method getEmptyItem (line 205) | @Override
    method configureTextView (line 221) | protected void configureTextView(TextView view) {
    method getTextView (line 237) | private TextView getTextView(View view, int textResource) {
    method getView (line 259) | private View getView(int resource, ViewGroup parent) {

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/adapters/AdapterWheel.java
  class AdapterWheel (line 29) | public class AdapterWheel extends AbstractWheelTextAdapter {
    method AdapterWheel (line 39) | public AdapterWheel(Context context, WheelAdapter adapter) {
    method getAdapter (line 49) | public WheelAdapter getAdapter() {
    method getItemsCount (line 53) | @Override
    method getItemText (line 58) | @Override

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/adapters/ArrayWheelAdapter.java
  class ArrayWheelAdapter (line 29) | public class ArrayWheelAdapter<T> extends AbstractWheelTextAdapter {
    method ArrayWheelAdapter (line 40) | public ArrayWheelAdapter(Context context, ArrayList<T> items) {
    method getItemText (line 47) | @Override
    method getItemsCount (line 60) | @Override

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/adapters/NumericWheelAdapter.java
  class NumericWheelAdapter (line 24) | public class NumericWheelAdapter extends AbstractWheelTextAdapter {
    method NumericWheelAdapter (line 43) | public NumericWheelAdapter(Context context) {
    method NumericWheelAdapter (line 53) | public NumericWheelAdapter(Context context, int minValue, int maxValue) {
    method NumericWheelAdapter (line 64) | public NumericWheelAdapter(Context context, int minValue, int maxValue...
    method getItemText (line 72) | @Override
    method getItemsCount (line 81) | @Override

FILE: DesignResCollection_MVP-Dagger2/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/adapters/WheelViewAdapter.java
  type WheelViewAdapter (line 26) | public interface WheelViewAdapter {
    method getItemsCount (line 31) | public int getItemsCount();
    method getItem (line 41) | public View getItem(int index, View convertView, ViewGroup parent);
    method getEmptyItem (line 51) | public View getEmptyItem(View convertView, ViewGroup parent);
    method registerDataSetObserver (line 57) | public void registerDataSetObserver(DataSetObserver observer);
    method unregisterDataSetObserver (line 63) | void unregisterDataSetObserver(DataSetObserver observer);

FILE: DesignResCollection_MVP/app/src/androidTest/java/com/boredream/designrescollection/ApplicationTest.java
  class ApplicationTest (line 9) | public class ApplicationTest extends ApplicationTestCase<Application> {
    method ApplicationTest (line 10) | public ApplicationTest() {

FILE: DesignResCollection_MVP/app/src/androidTest/java/com/boredream/designrescollection/idlingres/RxIdlingResource.java
  class RxIdlingResource (line 13) | public class RxIdlingResource extends RxJavaObservableExecutionHook impl...
    method RxIdlingResource (line 23) | private RxIdlingResource() {
    method get (line 27) | public static RxIdlingResource get() {
    method getName (line 39) | @Override
    method isIdleNow (line 44) | @Override
    method registerIdleTransitionCallback (line 50) | @Override
    method onSubscribeStart (line 59) | @Override
    method onFinally (line 90) | private <T> void onFinally(Observable.OnSubscribe<T> onSubscribe, fina...

FILE: DesignResCollection_MVP/app/src/androidTest/java/com/boredream/designrescollection/ui/login/LoginActivityTest.java
  class LoginActivityTest (line 29) | @RunWith(AndroidJUnit4.class)
    method testLogin_EmptyPassword (line 39) | @Test
    method testLogin_EmptyUsername (line 55) | @Test
    method testLogin_Success (line 71) | @Test
    method testLogin_UserNotExit (line 86) | @Test
    method testLogin_PswError (line 102) | @Test

FILE: DesignResCollection_MVP/app/src/androidTest/java/com/boredream/designrescollection/ui/userinfoedit/UserInfoEditActivityTest.java
  class UserInfoEditActivityTest (line 38) | @RunWith(AndroidJUnit4.class)
    method testUploadAvatar (line 55) | @Test
    method createImageGalleryActivityResultStub (line 73) | private Instrumentation.ActivityResult createImageGalleryActivityResul...
    method testUpdateNickname (line 83) | @Test

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/adapter/DesignResAdapter.java
  class DesignResAdapter (line 19) | public class DesignResAdapter extends RecyclerView.Adapter<DesignResAdap...
    method DesignResAdapter (line 24) | public DesignResAdapter(Context context, ArrayList<DesignRes> datas) {
    method getItemCount (line 29) | @Override
    class ViewHolder (line 34) | public static class ViewHolder extends RecyclerView.ViewHolder {
      method ViewHolder (line 38) | public ViewHolder(View rootView) {
    method onCreateViewHolder (line 47) | @Override
    method onBindViewHolder (line 53) | @Override

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/adapter/MoreRecyclerAdapter.java
  class MoreRecyclerAdapter (line 28) | public class MoreRecyclerAdapter extends SettingRecyclerAdapter {
    method MoreRecyclerAdapter (line 34) | public MoreRecyclerAdapter(List<SettingItem> datas, OnItemClickListene...
    method getItemCount (line 38) | @Override
    method getItemViewType (line 44) | @Override
    method setUser (line 49) | public void setUser(User user) {
    class ViewHolderUserHeader (line 53) | public static class ViewHolderUserHeader extends RecyclerView.ViewHold...
      method ViewHolderUserHeader (line 62) | public ViewHolderUserHeader(final View itemView) {
    method onCreateViewHolder (line 73) | @Override
    method onBindViewHolder (line 83) | @Override

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/base/BaseActivity.java
  class BaseActivity (line 17) | public class BaseActivity extends BoreBaseActivity {
    method onCreate (line 27) | @Override
    method onStart (line 42) | @Override
    method onStop (line 48) | @Override
    method setCouldDoubleBackExit (line 59) | public void setCouldDoubleBackExit(boolean couldDoubleBackExit) {
    method onBackPressed (line 63) | @Override
    method exit (line 94) | protected void exit() {

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/base/BaseApplication.java
  class BaseApplication (line 14) | public class BaseApplication extends Application {
    method getInstance (line 18) | public static BaseApplication getInstance() {
    method onCreate (line 22) | @Override
    method initGlide (line 34) | private void initGlide() {

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/base/BaseEntity.java
  class BaseEntity (line 6) | public class BaseEntity extends BoreBaseEntity {
    method equals (line 8) | @Override

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/base/BaseFragment.java
  class BaseFragment (line 13) | public abstract class BaseFragment extends Fragment {
    method onCreate (line 19) | @Override
    method intent2Activity (line 28) | protected void intent2Activity(Class<? extends Activity> tarActivity) {
    method showToast (line 33) | protected void showToast(String msg) {
    method showLog (line 37) | protected void showLog(String msg) {
    method showProgressDialog (line 41) | protected void showProgressDialog() {
    method dismissProgressDialog (line 45) | protected void dismissProgressDialog() {

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/base/BasePresenter.java
  type BasePresenter (line 19) | public interface BasePresenter {

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/base/BaseView.java
  type BaseView (line 19) | public interface BaseView<T> {
    method setPresenter (line 21) | void setPresenter(T presenter);
    method isActive (line 23) | boolean isActive();
    method showProgress (line 25) | void showProgress();
    method dismissProgress (line 27) | void dismissProgress();
    method showTip (line 29) | void showTip(String message);

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/constants/CommonConstants.java
  class CommonConstants (line 6) | public class CommonConstants {
    method CommonConstants (line 8) | private CommonConstants() {

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/entity/Comment.java
  class Comment (line 6) | public class Comment extends BaseEntity {
    method getDesignRes (line 22) | public DesignRes getDesignRes() {
    method setDesignRes (line 26) | public void setDesignRes(DesignRes designRes) {
    method getUser (line 30) | public User getUser() {
    method setUser (line 34) | public void setUser(User user) {
    method getContent (line 38) | public String getContent() {
    method setContent (line 42) | public void setContent(String content) {

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/entity/DesignRes.java
  class DesignRes (line 9) | public class DesignRes extends BaseEntity {
    method getDesc (line 17) | public String getDesc() {
    method setDesc (line 21) | public void setDesc(String desc) {
    method getSrcTag (line 25) | public String getSrcTag() {
    method setSrcTag (line 29) | public void setSrcTag(String srcTag) {
    method getName (line 33) | public String getName() {
    method setName (line 37) | public void setName(String name) {
    method getImgUrl (line 41) | public String getImgUrl() {
    method setImgUrl (line 45) | public void setImgUrl(String imgUrl) {
    method getSrcLink (line 49) | public String getSrcLink() {
    method setSrcLink (line 53) | public void setSrcLink(String srcLink) {
    method equals (line 57) | @Override
    method hashCode (line 75) | @Override

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/entity/FeedBack.java
  class FeedBack (line 6) | public class FeedBack extends BaseEntity {
    method getContent (line 11) | public String getContent() {
    method setContent (line 15) | public void setContent(String content) {
    method getEmail (line 19) | public String getEmail() {
    method setEmail (line 23) | public void setEmail(String email) {

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/entity/User.java
  class User (line 6) | public class User extends BaseEntity {
    method getSessionToken (line 36) | public String getSessionToken() {
    method setSessionToken (line 40) | public void setSessionToken(String sessionToken) {
    method getCompany (line 44) | public String getCompany() {
    method setCompany (line 48) | public void setCompany(String company) {
    method getAvatar (line 52) | public String getAvatar() {
    method setAvatar (line 56) | public void setAvatar(String avatar) {
    method getSmsCode (line 60) | public String getSmsCode() {
    method setSmsCode (line 64) | public void setSmsCode(String smsCode) {
    method getPassword (line 68) | public String getPassword() {
    method setPassword (line 72) | public void setPassword(String password) {
    method getMobilePhoneNumber (line 76) | public String getMobilePhoneNumber() {
    method setMobilePhoneNumber (line 80) | public void setMobilePhoneNumber(String mobilePhoneNumber) {
    method getUsername (line 84) | public String getUsername() {
    method setUsername (line 88) | public void setUsername(String username) {
    method getNickname (line 92) | public String getNickname() {
    method setNickname (line 96) | public void setNickname(String nickname) {

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/net/GlideHelper.java
  class GlideHelper (line 15) | public class GlideHelper {
    method showAvatar (line 17) | public static void showAvatar(Context context, String avatar, ImageVie...
    method showImage (line 28) | public static void showImage(Context context, String imageUrl, ImageVi...

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/net/HttpRequest.java
  class HttpRequest (line 39) | public class HttpRequest {
    method getHttpClient (line 54) | public OkHttpClient getHttpClient() {
    method getInstance (line 59) | public static HttpRequest getInstance() {
    method HttpRequest (line 62) | private HttpRequest() {
    type ApiService (line 97) | public interface ApiService {
      method login (line 100) | @GET("/1/login")
      method register (line 106) | @POST("/1/users")
      method updateUserById (line 111) | @PUT("/1/users/{objectId}")
      method fileUpload (line 117) | @POST("/1/files/{fileName}")
      method getAppUpdateInfo (line 123) | @GET("/1/classes/AppUpdateInfo")
      method addFeedBack (line 127) | @POST("/1/classes/FeedBack")
      method getDesignRes (line 135) | @GET("/1/classes/DesignRes")
    method getDesignRes (line 148) | public Observable<ListResponse<DesignRes>> getDesignRes(int page) {
    method getDesignRes (line 160) | public Observable<ListResponse<DesignRes>> getDesignRes(int page, Stri...
    method updateNickname (line 170) | public Observable<BaseEntity> updateNickname(String userid, String nic...
    method login (line 186) | public Observable<User> login(String username, String password) {
    method fileUpload (line 202) | public Observable<FileUploadResponse> fileUpload(byte[] bytes, String ...

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/net/SimpleSubscriber.java
  class SimpleSubscriber (line 14) | public class SimpleSubscriber<T> extends Subscriber<T> {
    method SimpleSubscriber (line 18) | public SimpleSubscriber(Context context) {
    method onCompleted (line 22) | @Override
    method onError (line 27) | @Override
    method onNext (line 34) | @Override

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/ui/AboutActivity.java
  class AboutActivity (line 17) | public class AboutActivity extends BaseActivity {
    method onCreate (line 22) | @Override
    method initView (line 29) | private void initView() {
    method getAboutString (line 42) | private SpannableString getAboutString() {

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/ui/MainActivity.java
  class MainActivity (line 17) | public class MainActivity extends BaseActivity implements RadioGroup.OnC...
    method onCreate (line 23) | @Override
    method initView (line 32) | private void initView() {
    method initData (line 41) | private void initData() {
    method onCheckedChanged (line 55) | @Override

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/ui/SettingActivity.java
  class SettingActivity (line 23) | public class SettingActivity extends BaseActivity implements View.OnClic...
    method onCreate (line 30) | @Override
    method initView (line 38) | private void initView() {
    method initData (line 47) | private void initData() {
    method onItemClick (line 74) | @Override
    method onClick (line 91) | @Override

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/ui/UserFragment.java
  class UserFragment (line 25) | public class UserFragment extends BaseFragment implements AdapterView.On...
    method onCreateView (line 30) | @Override
    method onStart (line 38) | @Override
    method initView (line 47) | private void initView(View view) {
    method initData (line 53) | private void initData() {
    method onItemClick (line 83) | @Override

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/ui/feedback/FeedBackActivity.java
  class FeedBackActivity (line 12) | public class FeedBackActivity extends BaseActivity implements FeedBackCo...
    method onCreate (line 18) | @Override
    method initView (line 27) | private void initView() {
    method submit (line 44) | private void submit() {
    method addFeedbackSuccess (line 52) | @Override
    method setPresenter (line 58) | @Override
    method isActive (line 63) | @Override
    method showProgress (line 68) | @Override
    method dismissProgress (line 73) | @Override
    method showTip (line 78) | @Override

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/ui/feedback/FeedBackContract.java
  type FeedBackContract (line 6) | public interface FeedBackContract {
    type View (line 8) | interface View extends BaseView<Presenter> {
      method addFeedbackSuccess (line 10) | void addFeedbackSuccess();
    type Presenter (line 14) | interface Presenter extends BasePresenter {
      method addFeedback (line 16) | void addFeedback(String content, String email);

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/ui/feedback/FeedBackPresenter.java
  class FeedBackPresenter (line 12) | public class FeedBackPresenter implements FeedBackContract.Presenter {
    method FeedBackPresenter (line 17) | public FeedBackPresenter(FeedBackContract.View view, HttpRequest.ApiSe...
    method addFeedback (line 23) | @Override

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/ui/home/HomeContract.java
  type HomeContract (line 9) | public interface HomeContract {
    type View (line 11) | interface View extends BaseView<Presenter> {
      method loadListSuccess (line 13) | void loadListSuccess(int page, List<DesignRes> datas);
    type Presenter (line 17) | interface Presenter extends BasePresenter {
      method loadList (line 19) | void loadList(int page);
      method pullToLoadList (line 21) | void pullToLoadList();

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/ui/home/HomeFragment.java
  class HomeFragment (line 25) | public class HomeFragment extends BaseFragment implements HomeContract.V...
    method onCreateView (line 36) | @Override
    method initView (line 44) | private void initView() {
    method initData (line 72) | private void initData() {
    method loadListSuccess (line 76) | @Override
    method setPresenter (line 90) | @Override
    method isActive (line 95) | @Override
    method showProgress (line 100) | @Override
    method dismissProgress (line 110) | @Override
    method showTip (line 115) | @Override

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/ui/home/HomePresenter.java
  class HomePresenter (line 14) | public class HomePresenter implements HomeContract.Presenter {
    method HomePresenter (line 19) | public HomePresenter(HomeContract.View view) {
    method pullToLoadList (line 24) | @Override
    method loadList (line 29) | @Override
    method loadData (line 38) | private void loadData(final int page) {

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/ui/login/LoginActivity.java
  class LoginActivity (line 11) | public class LoginActivity extends BaseActivity {
    method onCreate (line 18) | @Override
    method initExtras (line 27) | private void initExtras() {
    method initView (line 31) | private void initView() {

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/ui/login/LoginContract.java
  type LoginContract (line 10) | public interface LoginContract {
    type View (line 12) | interface View extends BaseView<Presenter> {
      method loginSuccess (line 14) | void loginSuccess(User user);
    type Presenter (line 18) | interface Presenter extends BasePresenter {
      method login (line 20) | void login(String username, String password);

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/ui/login/LoginFragment.java
  class LoginFragment (line 19) | public class LoginFragment extends BaseFragment implements LoginContract...
    method newInstance (line 32) | public static LoginFragment newInstance(boolean checkLogin) {
    method onCreateView (line 40) | @Override
    method initExtras (line 48) | private void initExtras() {
    method initView (line 52) | private void initView(View view) {
    method onClick (line 64) | @Override
    method showProgress (line 84) | @Override
    method dismissProgress (line 89) | @Override
    method loginSuccess (line 94) | @Override
    method showTip (line 105) | @Override
    method isActive (line 110) | @Override
    method setPresenter (line 115) | @Override

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/ui/login/LoginPresenter.java
  class LoginPresenter (line 12) | public class LoginPresenter implements LoginContract.Presenter {
    method LoginPresenter (line 17) | public LoginPresenter(LoginContract.View view, HttpRequest httpRequest) {
    method login (line 23) | @Override

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/ui/modifytext/ModifyTextActivity.java
  class ModifyTextActivity (line 15) | public class ModifyTextActivity extends BaseActivity implements ModifyTe...
    method start (line 29) | public static void start(Activity context, int requestCode, String tit...
    method onCreate (line 36) | @Override
    method initExtras (line 46) | private void initExtras() {
    method initView (line 52) | private void initView() {
    method initData (line 66) | private void initData() {
    method submit (line 72) | private void submit() {
    method modifyTextSuccess (line 77) | @Override
    method setPresenter (line 86) | @Override
    method isActive (line 91) | @Override
    method showProgress (line 96) | @Override
    method dismissProgress (line 101) | @Override
    method showTip (line 106) | @Override

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/ui/modifytext/ModifyTextContract.java
  type ModifyTextContract (line 6) | public interface ModifyTextContract {
    type View (line 8) | interface View extends BaseView<Presenter> {
      method modifyTextSuccess (line 10) | void modifyTextSuccess(boolean isModify, String newString);
    type Presenter (line 14) | interface Presenter extends BasePresenter {
      method modifyText (line 16) | void modifyText(String title, String oldString, String modifyString);

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/ui/modifytext/ModifyTextPresenter.java
  class ModifyTextPresenter (line 5) | public class ModifyTextPresenter implements ModifyTextContract.Presenter {
    method ModifyTextPresenter (line 9) | public ModifyTextPresenter(ModifyTextContract.View view) {
    method modifyText (line 14) | @Override

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/ui/register/RegisterContract.java
  class RegisterContract (line 7) | public class RegisterContract {
    type View (line 8) | interface View extends BaseView<Presenter> {
      method requestSmsSuccess (line 10) | void requestSmsSuccess(String phone, String password);
      method registerSuccess (line 12) | void registerSuccess(User user);
    type Presenter (line 15) | interface Presenter extends BasePresenter {
      method requestSms (line 17) | void requestSms(String phone, String password);
      method register (line 19) | void register(String phone, String password, String code);

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/ui/register/RegisterPresenter.java
  class RegisterPresenter (line 13) | public class RegisterPresenter implements RegisterContract.Presenter {
    method RegisterPresenter (line 17) | public RegisterPresenter(RegisterContract.View view) {
    method requestSms (line 22) | @Override
    method register (line 67) | @Override

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/ui/register/RegisterStep1Activity.java
  class RegisterStep1Activity (line 16) | public class RegisterStep1Activity extends BaseActivity implements View....
    method onCreate (line 23) | @Override
    method initView (line 31) | private void initView() {
    method next (line 42) | private void next() {
    method onClick (line 49) | @Override
    method requestSmsSuccess (line 58) | @Override
    method registerSuccess (line 67) | @Override
    method setPresenter (line 72) | @Override
    method isActive (line 77) | @Override
    method showProgress (line 82) | @Override
    method dismissProgress (line 87) | @Override
    method showTip (line 92) | @Override

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/ui/register/RegisterStep2Activity.java
  class RegisterStep2Activity (line 22) | public class RegisterStep2Activity extends BaseActivity implements View....
    method onCreate (line 37) | @Override
    method initExtras (line 47) | private void initExtras() {
    method initView (line 53) | private void initView() {
    method initData (line 65) | private void initData() {
    method startCountDown (line 72) | private void startCountDown() {
    method submit (line 100) | private void submit() {
    method onClick (line 105) | @Override
    method requestSmsSuccess (line 117) | @Override
    method registerSuccess (line 122) | @Override
    method setPresenter (line 139) | @Override
    method isActive (line 144) | @Override
    method showProgress (line 149) | @Override
    method dismissProgress (line 154) | @Override
    method showTip (line 159) | @Override

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/ui/userinfoedit/UserInfoEditActivity.java
  class UserInfoEditActivity (line 24) | public class UserInfoEditActivity extends BaseActivity implements View.O...
    method onCreate (line 36) | @Override
    method initData (line 45) | private void initData() {
    method initView (line 51) | private void initView() {
    method onClick (line 66) | @Override
    method onActivityResult (line 79) | @Override
    method compressAndUpload (line 110) | private void compressAndUpload(final Uri uri) {
    method uploadUserInfoSuccess (line 134) | @Override
    method setPresenter (line 139) | @Override
    method isActive (line 144) | @Override
    method showProgress (line 149) | @Override
    method dismissProgress (line 154) | @Override
    method showTip (line 159) | @Override

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/ui/userinfoedit/UserInfoEditContract.java
  type UserInfoEditContract (line 6) | public interface UserInfoEditContract {
    type View (line 8) | interface View extends BaseView<Presenter> {
      method uploadUserInfoSuccess (line 10) | void uploadUserInfoSuccess();
    type Presenter (line 14) | interface Presenter extends BasePresenter {
      method uploadAvatar (line 19) | void uploadAvatar(byte[] bytes);
      method updateNickname (line 24) | void updateNickname(String nickname);

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/ui/userinfoedit/UserInfoEditPresenter.java
  class UserInfoEditPresenter (line 18) | public class UserInfoEditPresenter implements UserInfoEditContract.Prese...
    method UserInfoEditPresenter (line 24) | public UserInfoEditPresenter(UserInfoEditContract.View view,
    method uploadAvatar (line 33) | @Override
    method updateUserAvatar (line 64) | public void updateUserAvatar(final String avatarUrl) {
    method updateNickname (line 98) | @Override

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/utils/UpdateUtils.java
  class UpdateUtils (line 52) | public class UpdateUtils {
    method checkUpdate (line 66) | public static void checkUpdate(final BaseActivity context, final boole...
    method showNoWifiConfirmDialog (line 132) | private static void showNoWifiConfirmDialog(final BaseActivity context...
    method showUpdateConfirmDialog (line 145) | private static void showUpdateConfirmDialog(final BaseActivity context...
    method startDownload (line 174) | private static void startDownload(BaseActivity context, AppUpdateInfo ...
    method getDownloadApkName (line 204) | @NonNull
    method getDownloadStatus (line 216) | private static int getDownloadStatus(BaseActivity context, AppUpdateIn...
    method getDownloadUriById (line 257) | public static Uri getDownloadUriById(Context context, long enqueueId) {

FILE: DesignResCollection_MVP/app/src/main/java/com/boredream/designrescollection/utils/UserInfoKeeper.java
  class UserInfoKeeper (line 13) | public class UserInfoKeeper {
    method getCurrentUser (line 20) | public static User getCurrentUser() {
    method setCurrentUser (line 27) | public static void setCurrentUser(User user) {
    method clearCurrentUser (line 34) | public static void clearCurrentUser() {
    method getToken (line 38) | public static String getToken() {
    method logout (line 50) | public static void logout() {
    method checkLogin (line 59) | public static boolean checkLogin(Context context) {

FILE: DesignResCollection_MVP/app/src/test/java/com/boredream/designrescollection/net/HttpRequestTest.java
  class HttpRequestTest (line 11) | public class HttpRequestTest {
    method setUp (line 13) | @Before
    method test (line 18) | @Test

FILE: DesignResCollection_MVP/app/src/test/java/com/boredream/designrescollection/ui/feedback/FeedBackPresenterTest.java
  class FeedBackPresenterTest (line 23) | public class FeedBackPresenterTest {
    method setupMocksAndView (line 37) | @Before
    method testAddFeedback_Success (line 54) | @Test
    method testAddFeedback_Mock_Success (line 66) | @Test
    method testAddFeedback_Mock_Error (line 80) | @Test

FILE: DesignResCollection_MVP/app/src/test/java/com/boredream/designrescollection/ui/home/HomePresenterTest.java
  class HomePresenterTest (line 17) | public class HomePresenterTest {
    method setupMocksAndView (line 24) | @Before
    method testPullToLoadList (line 38) | @Test
    method testLoadList (line 47) | @Test
    method testLoadList_overPage (line 57) | @Test

FILE: DesignResCollection_MVP/app/src/test/java/com/boredream/designrescollection/ui/login/LoginPresenterTest.java
  class LoginPresenterTest (line 19) | public class LoginPresenterTest {
    method setupMocksAndView (line 26) | @Before
    method testLogin_EmptyPassword (line 41) | @Test
    method testLogin_EmptyUsername (line 48) | @Test
    method testLogin_Success (line 55) | @Test
    method testLogin_UserNotExit (line 66) | @Test
    method testLogin_PswError (line 76) | @Test

FILE: DesignResCollection_MVP/app/src/test/java/com/boredream/designrescollection/ui/modifytext/ModifyTextPresenterTest.java
  class ModifyTextPresenterTest (line 13) | public class ModifyTextPresenterTest {
    method setupMocksAndView (line 20) | @Before
    method testModifyText_Empty1 (line 34) | @Test
    method testModifyText_Empty2 (line 44) | @Test
    method testModifyText_NoModify (line 54) | @Test
    method testModifyText_Success1 (line 64) | @Test
    method testModifyText_Success2 (line 74) | @Test
    method testModifyText_Success3 (line 84) | @Test

FILE: DesignResCollection_MVP/app/src/test/java/com/boredream/designrescollection/ui/register/RegisterPresenterTest.java
  class RegisterPresenterTest (line 14) | public class RegisterPresenterTest {
    method setupMocksAndView (line 21) | @Before
    method testRequestSms (line 35) | @Test
    method testRegister (line 47) | @Test

FILE: DesignResCollection_MVP/app/src/test/java/com/boredream/designrescollection/ui/userinfoedit/UserInfoEditPresenterTest.java
  class UserInfoEditPresenterTest (line 23) | public class UserInfoEditPresenterTest {
    method setupMocksAndView (line 33) | @Before
    method testFileUpload (line 49) | @Test
    method testUpdateNickname (line 72) | @Test

FILE: DesignResCollection_MVP/bdcodehelper/src/main/java/com/boredream/bdcodehelper/BoreConstants.java
  class BoreConstants (line 3) | public class BoreConstants {
    method BoreConstants (line 4) | private BoreConstants() {

FILE: DesignResCollection_MVP/bdcodehelper/src/main/java/com/boredream/bdcodehelper/activity/ImageBrowserActivity.java
  class ImageBrowserActivity (line 16) | public class ImageBrowserActivity extends BoreBaseActivity {
    method onCreate (line 25) | @Override
    method initData (line 36) | private void initData() {
    method initView (line 41) | private void initView() {
    method setData (line 46) | private void setData() {

FILE: DesignResCollection_MVP/bdcodehelper/src/main/java/com/boredream/bdcodehelper/activity/WebViewActivity.java
  class WebViewActivity (line 17) | public class WebViewActivity extends BoreBaseActivity {
    method onCreate (line 26) | @Override
    method initView (line 40) | @SuppressLint("SetJavaScriptEnabled")
    class MyWebClient (line 65) | private class MyWebClient extends WebViewClient {
      method onPageStarted (line 67) | @Override
      method onPageFinished (line 72) | @Override
      method shouldOverrideUrlLoading (line 79) | public boolean shouldOverrideUrlLoading(WebView view, String url) {

FILE: DesignResCollection_MVP/bdcodehelper/src/main/java/com/boredream/bdcodehelper/adapter/BannerPagerAdapter.java
  class BannerPagerAdapter (line 21) | public class BannerPagerAdapter extends PagerAdapter {
    method BannerPagerAdapter (line 26) | public BannerPagerAdapter(Context context, ArrayList<? extends ImageUr...
    method getCount (line 31) | @Override
    method isViewFromObject (line 39) | @Override
    method destroyItem (line 44) | @Override
    method instantiateItem (line 49) | @Override

FILE: DesignResCollection_MVP/bdcodehelper/src/main/java/com/boredream/bdcodehelper/adapter/ImageBrowserAdapter.java
  class ImageBrowserAdapter (line 23) | public class ImageBrowserAdapter extends PagerAdapter {
    method ImageBrowserAdapter (line 28) | public ImageBrowserAdapter(Activity context, List<? extends ImageUrlIn...
    method getCount (line 33) | @Override
    method isViewFromObject (line 41) | @Override
    method instantiateItem (line 46) | @Override
    method destroyItem (line 100) | @Override

FILE: DesignResCollection_MVP/bdcodehelper/src/main/java/com/boredream/bdcodehelper/adapter/ListDropDownAdapter.java
  class ListDropDownAdapter (line 14) | public class ListDropDownAdapter extends BaseAdapter {
    method setCheckItem (line 20) | public void setCheckItem(int position) {
    method ListDropDownAdapter (line 25) | public ListDropDownAdapter(Context context, List<String> list) {
    method getCount (line 30) | @Override
    method getItem (line 35) | @Override
    method getItemId (line
Condensed preview — 699 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,513K chars).
[
  {
    "path": ".gitattributes",
    "chars": 378,
    "preview": "# Auto detect text files and perform LF normalization\n* text=auto\n\n# Custom for Visual Studio\n*.cs     diff=csharp\n\n# St"
  },
  {
    "path": ".gitignore",
    "chars": 1137,
    "preview": "# Built application files\n*.apk\n*.ap_\n\n# Files for the Dalvik VM\n*.dex\n\n# Java class files\n*.class\n\n# Generated files\nbi"
  },
  {
    "path": "DesignResCollection_MVC/README.md",
    "chars": 290,
    "preview": "## Model-View-Controller 结构  \n经典MVC模式。  \nLeanCloud作为后端,网络框架+图片框架,一起组成了一个普通App最基础的部分。可以参考本项目框架实现自己各种idea~    \n最好自己去申请个Lea"
  },
  {
    "path": "DesignResCollection_MVC/app/build.gradle",
    "chars": 1465,
    "preview": "apply plugin: 'com.android.application'\n\nandroid {\n    compileSdkVersion rootProject.ext.compileSdkVersion\n    buildTool"
  },
  {
    "path": "DesignResCollection_MVC/app/proguard.cfg",
    "chars": 2775,
    "preview": "######################## 固定部分 ########################\n\n#1.基本指令区\n-optimizationpasses 5\n-dontusemixedcaseclassnames\n-dont"
  },
  {
    "path": "DesignResCollection_MVC/app/src/androidTest/java/com/boredream/designrescollection/ApplicationTest.java",
    "chars": 365,
    "preview": "package com.boredream.designrescollection;\n\nimport android.app.Application;\nimport android.test.ApplicationTestCase;\n\n/*"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/AndroidManifest.xml",
    "chars": 2056,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    package="
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/activity/AboutActivity.java",
    "chars": 1989,
    "preview": "package com.boredream.designrescollection.activity;\n\nimport android.content.Intent;\nimport android.net.Uri;\nimport andro"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/activity/FeedBackActivity.java",
    "chars": 2723,
    "preview": "package com.boredream.designrescollection.activity;\n\n\nimport android.os.Bundle;\nimport android.text.TextUtils;\nimport an"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/activity/LoginActivity.java",
    "chars": 3373,
    "preview": "package com.boredream.designrescollection.activity;\n\nimport android.os.Bundle;\nimport android.text.TextUtils;\nimport and"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/activity/MainActivity.java",
    "chars": 1970,
    "preview": "package com.boredream.designrescollection.activity;\n\nimport android.os.Bundle;\nimport android.support.v4.app.Fragment;\ni"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/activity/RegisterStep1Activity.java",
    "chars": 2223,
    "preview": "package com.boredream.designrescollection.activity;\n\nimport android.content.Intent;\nimport android.os.Bundle;\nimport and"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/activity/RegisterStep2Activity.java",
    "chars": 5339,
    "preview": "package com.boredream.designrescollection.activity;\n\n\nimport android.content.DialogInterface;\nimport android.content.Int"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/activity/SettingActivity.java",
    "chars": 3229,
    "preview": "package com.boredream.designrescollection.activity;\n\nimport android.os.Bundle;\nimport android.support.v7.widget.LinearLa"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/activity/UserInfoEditActivity.java",
    "chars": 5544,
    "preview": "package com.boredream.designrescollection.activity;\n\nimport android.content.Intent;\nimport android.net.Uri;\nimport andro"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/activity/UsernameModifyActivity.java",
    "chars": 2925,
    "preview": "package com.boredream.designrescollection.activity;\n\nimport android.os.Bundle;\nimport android.text.TextUtils;\nimport and"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/adapter/DesignResAdapter.java",
    "chars": 2346,
    "preview": "package com.boredream.designrescollection.adapter;\n\nimport android.content.Context;\nimport android.content.Intent;\nimpor"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/adapter/MoreRecyclerAdapter.java",
    "chars": 4574,
    "preview": "package com.boredream.designrescollection.adapter;\n\nimport android.content.Intent;\nimport android.support.v7.widget.Recy"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/base/BaseActivity.java",
    "chars": 2506,
    "preview": "package com.boredream.designrescollection.base;\n\n\nimport android.content.Intent;\nimport android.content.SharedPreference"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/base/BaseApplication.java",
    "chars": 940,
    "preview": "package com.boredream.designrescollection.base;\n\n\nimport android.app.Application;\n\nimport com.boredream.designrescollect"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/base/BaseEntity.java",
    "chars": 404,
    "preview": "package com.boredream.designrescollection.base;\n\n\nimport com.boredream.bdcodehelper.base.BoreBaseEntity;\n\npublic class B"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/base/BaseFragment.java",
    "chars": 1214,
    "preview": "package com.boredream.designrescollection.base;\n\n\nimport android.app.Activity;\nimport android.content.Intent;\nimport and"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/constants/CommonConstants.java",
    "chars": 319,
    "preview": "package com.boredream.designrescollection.constants;\n\n/**\n * 通用常量\n */\npublic class CommonConstants {\n\n    private Common"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/entity/Comment.java",
    "chars": 782,
    "preview": "package com.boredream.designrescollection.entity;\n\n\nimport com.boredream.designrescollection.base.BaseEntity;\n\npublic cl"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/entity/DesignRes.java",
    "chars": 998,
    "preview": "package com.boredream.designrescollection.entity;\n\n\nimport com.boredream.designrescollection.base.BaseEntity;\n\n/**\n * 设计"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/entity/FeedBack.java",
    "chars": 495,
    "preview": "package com.boredream.designrescollection.entity;\n\n\nimport com.boredream.designrescollection.base.BaseEntity;\n\npublic cl"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/entity/User.java",
    "chars": 1814,
    "preview": "package com.boredream.designrescollection.entity;\n\n\nimport com.boredream.designrescollection.base.BaseEntity;\n\npublic cl"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/fragment/HomeFragment.java",
    "chars": 4089,
    "preview": "package com.boredream.designrescollection.fragment;\n\n\nimport android.os.Bundle;\nimport android.support.v4.widget.SwipeRe"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/fragment/UserFragment.java",
    "chars": 3458,
    "preview": "package com.boredream.designrescollection.fragment;\n\nimport android.os.Bundle;\nimport android.support.v7.widget.LinearLa"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/net/GlideHelper.java",
    "chars": 1125,
    "preview": "package com.boredream.designrescollection.net;\n\n\nimport android.content.Context;\nimport android.widget.ImageView;\n\nimpor"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/net/HttpRequest.java",
    "chars": 8233,
    "preview": "package com.boredream.designrescollection.net;\n\n\nimport android.content.Context;\nimport android.graphics.drawable.Drawab"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/net/SimpleSubscriber.java",
    "chars": 770,
    "preview": "package com.boredream.designrescollection.net;\n\n\nimport android.content.Context;\n\nimport com.boredream.bdcodehelper.util"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/utils/UpdateUtils.java",
    "chars": 9263,
    "preview": "package com.boredream.designrescollection.utils;\n\n\nimport android.app.Activity;\nimport android.app.DownloadManager;\nimpo"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/java/com/boredream/designrescollection/utils/UserInfoKeeper.java",
    "chars": 1438,
    "preview": "package com.boredream.designrescollection.utils;\n\n\nimport android.content.Context;\nimport android.content.Intent;\n\nimpor"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/anim/loading.xml",
    "chars": 311,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<set xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <rotate\n    "
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/color/txt_blue2gray_sel.xml",
    "chars": 245,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <item a"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/drawable/ic_fav_grey2black_sel.xml",
    "chars": 277,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\n\n    <item "
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/drawable/ic_home_grey2black_sel.xml",
    "chars": 269,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\n\n    <item "
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/drawable/ic_more_grey2black_sel.xml",
    "chars": 281,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\n\n    <item "
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/drawable/ic_search_grey2black_sel.xml",
    "chars": 273,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\n\n    <item "
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/drawable/ic_settings_grey2black_sel.xml",
    "chars": 277,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\n\n    <item "
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/drawable/oval_progress.xml",
    "chars": 416,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<layer-list xmlns:android=\"http://schemas.android.com/apk/res/android\">\n\n    <ite"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/layout/activity_about.xml",
    "chars": 1769,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    andr"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/layout/activity_feed_back.xml",
    "chars": 1151,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    andr"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/layout/activity_input.xml",
    "chars": 750,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    andr"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/layout/activity_login.xml",
    "chars": 2160,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    andr"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/layout/activity_main.xml",
    "chars": 668,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    andr"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/layout/activity_regist.xml",
    "chars": 1360,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    andr"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/layout/activity_register_step1.xml",
    "chars": 1360,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    andr"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/layout/activity_register_step2.xml",
    "chars": 1989,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    andr"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/layout/activity_setting.xml",
    "chars": 971,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    andr"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/layout/activity_user_info_edit.xml",
    "chars": 2666,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    andr"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/layout/frag_home.xml",
    "chars": 351,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    andr"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/layout/frag_user.xml",
    "chars": 567,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    andr"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/layout/include_bottom_tab.xml",
    "chars": 931,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<RadioGroup xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/layout/include_more_header.xml",
    "chars": 1229,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    andr"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/layout/include_more_no_header.xml",
    "chars": 887,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    andr"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/layout/item_design_res.xml",
    "chars": 759,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    andr"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/layout/item_more_header.xml",
    "chars": 434,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<FrameLayout\n    xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    a"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/values/colors.xml",
    "chars": 208,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <color name=\"colorPrimary\">#3F51B5</color>\n    <color name=\"color"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/values/dimens.xml",
    "chars": 211,
    "preview": "<resources>\n    <!-- Default screen margins, per the Android Design guidelines. -->\n    <dimen name=\"activity_horizontal"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/values/strings.xml",
    "chars": 798,
    "preview": "<resources>\n    <string name=\"app_name\">DesignResCollection</string>\n    <string name=\"action_settings\">Settings</string"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/values/styles.xml",
    "chars": 85,
    "preview": "<resources xmlns:android=\"http://schemas.android.com/apk/res/android\">\n\n\n</resources>"
  },
  {
    "path": "DesignResCollection_MVC/app/src/main/res/values-w820dp/dimens.xml",
    "chars": 358,
    "preview": "<resources>\n    <!-- Example customization of dimensions originally defined in res/values/dimens.xml\n         (such as s"
  },
  {
    "path": "DesignResCollection_MVC/app/src/test/java/com/boredream/designrescollection/ExampleUnitTest.java",
    "chars": 164,
    "preview": "package com.boredream.designrescollection;\n\n/**\n * To work on unit tests, switch the Test Artifact in the Build Variants"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/README.md",
    "chars": 993,
    "preview": "# BDCodeHelper 代码助手\nCode Helper Model for android develper (Android Studio)  \n代码为Android Studio 的 Model,不是完整App应用。需要主项目依"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/build.gradle",
    "chars": 2586,
    "preview": "apply plugin: 'com.android.library'\n\nandroid {\n    compileSdkVersion rootProject.ext.compileSdkVersion\n    buildToolsVer"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/proguard-rules.pro",
    "chars": 672,
    "preview": "# Add project specific ProGuard rules here.\n# By default, the flags in this file are appended to flags specified\n# in D:"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/androidTest/java/com/boredream/bdcodehelper/ApplicationTest.java",
    "chars": 255,
    "preview": "package com.boredream.bdcodehelper;\n\nimport android.app.Application;\nimport android.test.ApplicationTestCase;\n\npublic cl"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/AndroidManifest.xml",
    "chars": 363,
    "preview": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    package=\"com.boredream.bdcodehelper\">\n\n    <app"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/activity/ImageBrowserActivity.java",
    "chars": 2377,
    "preview": "package com.boredream.bdcodehelper.activity;\n\n\nimport android.os.Bundle;\nimport android.support.v4.view.ViewPager;\nimpor"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/activity/WebViewActivity.java",
    "chars": 2659,
    "preview": "package com.boredream.bdcodehelper.activity;\n\nimport android.annotation.SuppressLint;\nimport android.graphics.Bitmap;\nim"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/adapter/BannerPagerAdapter.java",
    "chars": 3500,
    "preview": "package com.boredream.bdcodehelper.adapter;\n\nimport android.content.Context;\nimport android.content.Intent;\nimport andro"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/adapter/ImageBrowserAdapter.java",
    "chars": 3769,
    "preview": "package com.boredream.bdcodehelper.adapter;\n\nimport android.app.Activity;\nimport android.graphics.drawable.Drawable;\nimp"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/adapter/ListDropDownAdapter.java",
    "chars": 2294,
    "preview": "package com.boredream.bdcodehelper.adapter;\n\nimport android.content.Context;\nimport android.view.LayoutInflater;\nimport "
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/adapter/LoadMoreAdapter.java",
    "chars": 8467,
    "preview": "package com.boredream.bdcodehelper.adapter;\n\nimport android.graphics.drawable.Drawable;\nimport android.support.v7.widget"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/adapter/SettingRecyclerAdapter.java",
    "chars": 3178,
    "preview": "package com.boredream.bdcodehelper.adapter;\n\n\nimport android.support.v7.widget.RecyclerView;\nimport android.text.TextUti"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/base/BoreBaseActivity.java",
    "chars": 2110,
    "preview": "package com.boredream.bdcodehelper.base;\n\n\nimport android.app.Activity;\nimport android.app.Dialog;\nimport android.conten"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/base/BoreBaseEntity.java",
    "chars": 1286,
    "preview": "package com.boredream.bdcodehelper.base;\n\n\nimport com.boredream.bdcodehelper.entity.Pointer;\n\n/**\n * 数据实体基类\n * <p>\n * 之所"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/db/AddressData.java",
    "chars": 3712,
    "preview": "package com.boredream.bdcodehelper.db;\n\nimport android.content.Context;\nimport android.database.Cursor;\nimport android.d"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/db/AssetsDatabaseManager.java",
    "chars": 6259,
    "preview": "package com.boredream.bdcodehelper.db;\n\nimport android.content.Context;\nimport android.content.SharedPreferences;\nimport"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/AppUpdateInfo.java",
    "chars": 898,
    "preview": "package com.boredream.bdcodehelper.entity;\n\nimport com.boredream.bdcodehelper.base.BoreBaseEntity;\n\npublic class AppUpda"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/ErrorResponse.java",
    "chars": 570,
    "preview": "package com.boredream.bdcodehelper.entity;\n\npublic class ErrorResponse {\n\n    private int code;\n    private String error"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/FileUploadResponse.java",
    "chars": 785,
    "preview": "package com.boredream.bdcodehelper.entity;\n\npublic class FileUploadResponse {\n    private String filename;\n    private S"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/FormItem.java",
    "chars": 1239,
    "preview": "package com.boredream.bdcodehelper.entity;\n\nimport android.text.InputType;\n\npublic class FormItem {\n\n    public static f"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/ImageUrlInterface.java",
    "chars": 215,
    "preview": "package com.boredream.bdcodehelper.entity;\n\nimport java.io.Serializable;\n\npublic interface ImageUrlInterface extends Ser"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/ListResponse.java",
    "chars": 300,
    "preview": "package com.boredream.bdcodehelper.entity;\n\nimport java.util.ArrayList;\n\npublic class ListResponse<T> {\n    private Arra"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/PageIndex.java",
    "chars": 1978,
    "preview": "package com.boredream.bdcodehelper.entity;\n\nimport com.boredream.bdcodehelper.adapter.LoadMoreAdapter;\n\nimport java.util"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/Pointer.java",
    "chars": 1493,
    "preview": "package com.boredream.bdcodehelper.entity;\n\nimport com.google.gson.Gson;\n\nimport java.io.Serializable;\n\npublic class Poi"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/Relation.java",
    "chars": 814,
    "preview": "package com.boredream.bdcodehelper.entity;\n\nimport java.io.Serializable;\nimport java.util.ArrayList;\nimport java.util.Li"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/RelationTo.java",
    "chars": 453,
    "preview": "package com.boredream.bdcodehelper.entity;\n\npublic class RelationTo {\n    public static final String OP_RELATEDTO = \"$re"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/SettingItem.java",
    "chars": 596,
    "preview": "package com.boredream.bdcodehelper.entity;\n\n/**\n * 更多item信息\n */\npublic class SettingItem {\n\n    /**\n     * 左侧图片\n     */\n"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/UpdatePswRequest.java",
    "chars": 486,
    "preview": "package com.boredream.bdcodehelper.entity;\n\npublic class UpdatePswRequest {\n    private String oldPassword;\n    private "
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/Where.java",
    "chars": 538,
    "preview": "package com.boredream.bdcodehelper.entity;\n\nimport java.util.Map;\n\npublic class Where {\n    public static final String O"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/city/BaseAddressModel.java",
    "chars": 183,
    "preview": "package com.boredream.bdcodehelper.entity.city;\n\nimport java.io.Serializable;\n\npublic class BaseAddressModel implements "
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/entity/city/CityModel.java",
    "chars": 305,
    "preview": "package com.boredream.bdcodehelper.entity.city;\n\npublic class CityModel extends BaseAddressModel {\n\tpublic String provin"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/fragment/FragmentController.java",
    "chars": 1580,
    "preview": "package com.boredream.bdcodehelper.fragment;\n\nimport android.support.v4.app.Fragment;\nimport android.support.v4.app.Frag"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/net/ErrorConstants.java",
    "chars": 4225,
    "preview": "package com.boredream.bdcodehelper.net;\n\nimport java.util.HashMap;\nimport java.util.Map;\n\npublic class ErrorConstants {\n"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/net/GlideCircleTransform.java",
    "chars": 1648,
    "preview": "package com.boredream.bdcodehelper.net;\n\nimport android.content.Context;\nimport android.graphics.Bitmap;\nimport android."
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/net/MultiPageRequest.java",
    "chars": 165,
    "preview": "package com.boredream.bdcodehelper.net;\n\nimport rx.Observable;\n\npublic abstract class MultiPageRequest<T> {\n\n    public "
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/net/ObservableDecorator.java",
    "chars": 559,
    "preview": "package com.boredream.bdcodehelper.net;\n\nimport java.util.concurrent.TimeUnit;\n\nimport rx.Observable;\nimport rx.android."
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/net/RoundedCornersTransformation.java",
    "chars": 10707,
    "preview": "package com.boredream.bdcodehelper.net;\n\n/**\n * Copyright (C) 2015 Wasabeef\n *\n * Licensed under the Apache License, Ver"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/present/FormItemsPresent.java",
    "chars": 5727,
    "preview": "package com.boredream.bdcodehelper.present;\n\nimport android.content.Context;\nimport android.text.TextUtils;\nimport andro"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/present/GroupEtEmptyCheckPresent.java",
    "chars": 1409,
    "preview": "package com.boredream.bdcodehelper.present;\n\nimport android.text.Editable;\nimport android.text.TextUtils;\nimport android"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/present/ImageBannerPresent.java",
    "chars": 4480,
    "preview": "package com.boredream.bdcodehelper.present;\n\nimport android.content.Context;\nimport android.graphics.drawable.ColorDrawa"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/present/ImageBrowserPresent.java",
    "chars": 2060,
    "preview": "package com.boredream.bdcodehelper.present;\n\nimport android.app.Activity;\nimport android.support.v4.view.ViewPager;\nimpo"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/present/MultiPageLoadPresent.java",
    "chars": 5452,
    "preview": "package com.boredream.bdcodehelper.present;\n\nimport android.app.Activity;\nimport android.support.v4.widget.SwipeRefreshL"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/ActivityUtils.java",
    "chars": 1381,
    "preview": "/*\n * Copyright 2016, The Android Open Source Project\n *\n * Licensed under the Apache License, Version 2.0 (the \"License"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/AppUtils.java",
    "chars": 3515,
    "preview": "package com.boredream.bdcodehelper.utils;\n\nimport android.content.ClipData;\nimport android.content.ClipboardManager;\nimp"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/DateUtils.java",
    "chars": 7420,
    "preview": "package com.boredream.bdcodehelper.utils;\n\nimport android.text.TextUtils;\nimport android.text.format.DateFormat;\n\nimport"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/DialogUtils.java",
    "chars": 1605,
    "preview": "package com.boredream.bdcodehelper.utils;\n\nimport android.app.Dialog;\nimport android.app.ProgressDialog;\nimport android."
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/DisplayUtils.java",
    "chars": 1458,
    "preview": "package com.boredream.bdcodehelper.utils;\n\nimport android.app.Activity;\nimport android.content.Context;\nimport android.u"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/ErrorInfoUtils.java",
    "chars": 1863,
    "preview": "package com.boredream.bdcodehelper.utils;\n\nimport android.text.TextUtils;\n\nimport com.boredream.bdcodehelper.entity.Erro"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/ImageUtils.java",
    "chars": 10121,
    "preview": "package com.boredream.bdcodehelper.utils;\n\nimport android.annotation.TargetApi;\nimport android.app.Activity;\nimport andr"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/LogUtils.java",
    "chars": 265,
    "preview": "package com.boredream.bdcodehelper.utils;\n\nimport android.util.Log;\n\npublic class LogUtils {\n\n    public static void sho"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/NetUtils.java",
    "chars": 1880,
    "preview": "package com.boredream.bdcodehelper.utils;\n\nimport android.app.Activity;\nimport android.content.ComponentName;\nimport and"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/StringUtils.java",
    "chars": 1064,
    "preview": "package com.boredream.bdcodehelper.utils;\n\nimport android.content.Context;\nimport android.text.TextPaint;\nimport android"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/TitleBuilder.java",
    "chars": 4473,
    "preview": "package com.boredream.bdcodehelper.utils;\n\nimport android.app.Activity;\nimport android.content.Context;\nimport android.t"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/ToastUtils.java",
    "chars": 665,
    "preview": "package com.boredream.bdcodehelper.utils;\n\nimport android.content.Context;\nimport android.widget.Toast;\n\npublic class To"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/utils/ViewUtils.java",
    "chars": 2039,
    "preview": "package com.boredream.bdcodehelper.utils;\n\npublic class ViewUtils {\n\n//    public static void setIndicator(Context conte"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/AddressWheelDialog.java",
    "chars": 2854,
    "preview": "package com.boredream.bdcodehelper.view;\n\n\nimport android.app.Dialog;\nimport android.content.Context;\nimport android.vie"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/BottomTabRadioButton.java",
    "chars": 7415,
    "preview": "package com.boredream.bdcodehelper.view;\n\nimport android.annotation.TargetApi;\nimport android.content.Context;\nimport an"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/CheckableLinearLayout.java",
    "chars": 1423,
    "preview": "package com.boredream.bdcodehelper.view;\n\nimport android.content.Context;\nimport android.util.AttributeSet;\nimport andro"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/DividerItemDecoration.java",
    "chars": 2917,
    "preview": "package com.boredream.bdcodehelper.view;\n\n/*\n * Copyright (C) 2014 The Android Open Source Project\n *\n * Licensed under "
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/DrawableRadioButton.java",
    "chars": 1931,
    "preview": "package com.boredream.bdcodehelper.view;\n\nimport android.content.Context;\nimport android.content.res.TypedArray;\nimport "
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/DrawableTextView.java",
    "chars": 1791,
    "preview": "package com.boredream.bdcodehelper.view;\n\nimport android.content.Context;\nimport android.content.res.TypedArray;\nimport "
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/DropDownMenu.java",
    "chars": 10020,
    "preview": "package com.boredream.bdcodehelper.view;\n\nimport android.annotation.TargetApi;\nimport android.content.Context;\nimport an"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/EmptyItemDecoration.java",
    "chars": 1597,
    "preview": "package com.boredream.bdcodehelper.view;\n\nimport android.graphics.Rect;\nimport android.support.v7.widget.RecyclerView;\ni"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/GridSpacingDecorator.java",
    "chars": 651,
    "preview": "package com.boredream.bdcodehelper.view;\n\nimport android.graphics.Rect;\nimport android.support.v7.widget.RecyclerView;\ni"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/PinnedSectionListView.java",
    "chars": 19965,
    "preview": "package com.boredream.bdcodehelper.view;\n/*\n * Copyright (C) 2013 Sergej Shafarenka, halfbit.de\n *\n * Licensed under the"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/PositionBar.java",
    "chars": 2883,
    "preview": "package com.boredream.bdcodehelper.view;\n\n\nimport android.annotation.SuppressLint;\nimport android.content.Context;\nimpor"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/WrapHeightGridView.java",
    "chars": 790,
    "preview": "package com.boredream.bdcodehelper.view;\n\nimport android.content.Context;\nimport android.util.AttributeSet;\nimport andro"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/WrapHeightLinearLayoutManager.java",
    "chars": 3165,
    "preview": "package com.boredream.bdcodehelper.view;\n\nimport android.content.Context;\nimport android.support.v7.widget.LinearLayoutM"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/WrapHeightListView.java",
    "chars": 790,
    "preview": "package com.boredream.bdcodehelper.view;\n\nimport android.content.Context;\nimport android.util.AttributeSet;\nimport andro"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/ItemsRange.java",
    "chars": 1780,
    "preview": "/*\n *  Android Wheel Control.\n *  https://code.google.com/p/android-wheel/\n *  \n *  Copyright 2011 Yuri Kanivets\n *\n *  "
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/OnWheelChangedListener.java",
    "chars": 1178,
    "preview": "/*\n *  Copyright 2011 Yuri Kanivets\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may n"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/OnWheelClickedListener.java",
    "chars": 1102,
    "preview": "/*\n *  Copyright 2011 Yuri Kanivets\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may n"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/OnWheelScrollListener.java",
    "chars": 1078,
    "preview": "/*\n *  Copyright 2010 Yuri Kanivets\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may n"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/WheelAdapter.java",
    "chars": 1243,
    "preview": "/*\n *  Copyright 2010 Yuri Kanivets\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may n"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/WheelRecycle.java",
    "chars": 3556,
    "preview": "/*\n *  Android Wheel Control.\n *  https://code.google.com/p/android-wheel/\n *  \n *  Copyright 2011 Yuri Kanivets\n *\n *  "
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/WheelScroller.java",
    "chars": 7311,
    "preview": "/*\n *  Android Wheel Control.\n *  https://code.google.com/p/android-wheel/\n *  \n *  Copyright 2011 Yuri Kanivets\n *\n *  "
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/WheelView.java",
    "chars": 23072,
    "preview": "/*\n *  Android Wheel Control.\n *  https://code.google.com/p/android-wheel/\n * \n *  Copyright 2011 Yuri Kanivets\n *\n *  L"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/adapters/AbstractWheelAdapter.java",
    "chars": 2120,
    "preview": "/*\n *  Copyright 2011 Yuri Kanivets\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may n"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/adapters/AbstractWheelTextAdapter.java",
    "chars": 8229,
    "preview": "/*\n *  Copyright 2011 Yuri Kanivets\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may n"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/adapters/AdapterWheel.java",
    "chars": 1616,
    "preview": "/*\n *  Copyright 2011 Yuri Kanivets\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may n"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/adapters/ArrayWheelAdapter.java",
    "chars": 1763,
    "preview": "/*\n *  Copyright 2011 Yuri Kanivets\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may n"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/adapters/NumericWheelAdapter.java",
    "chars": 2405,
    "preview": "/*\n *  Copyright 2011 Yuri Kanivets\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may n"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/java/com/boredream/bdcodehelper/view/wheel/adapters/WheelViewAdapter.java",
    "chars": 2057,
    "preview": "/*\n *  Copyright 2011 Yuri Kanivets\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may n"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/anim/dd_mask_in.xml",
    "chars": 210,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<set xmlns:android=\"http://schemas.android.com/apk/res/android\"\n     android:dura"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/anim/dd_mask_out.xml",
    "chars": 210,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<set xmlns:android=\"http://schemas.android.com/apk/res/android\"\n     android:dura"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/anim/dd_menu_in.xml",
    "chars": 221,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<set xmlns:android=\"http://schemas.android.com/apk/res/android\"\n     android:dura"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/anim/dd_menu_out.xml",
    "chars": 221,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<set xmlns:android=\"http://schemas.android.com/apk/res/android\"\n     android:dura"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/color/txt_blue2gray_sel.xml",
    "chars": 245,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <item a"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/color/txt_gray2primarydark_sel.xml",
    "chars": 247,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <item a"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/color/txt_lgray2white_sel.xml",
    "chars": 250,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <item a"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/color/txt_primary2white_sel.xml",
    "chars": 248,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <item a"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/color/txt_white2gray_sel.xml",
    "chars": 245,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <item a"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/drawable/bg_gray2dark_sel.xml",
    "chars": 337,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\n\n    <item "
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/drawable/bg_primary2dark_sel.xml",
    "chars": 341,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\n\n    <item "
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/drawable/bg_primarydark_indicator_sel.xml",
    "chars": 284,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\n\n    <item "
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/drawable/bg_tran2gray_sel.xml",
    "chars": 349,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\n\n    <item "
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/drawable/bg_white2gray_sel.xml",
    "chars": 343,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\n\n    <item "
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/drawable/cirrect_10a_primary_solid.xml",
    "chars": 243,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:sha"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/drawable/cirrect_5a_primary_solid.xml",
    "chars": 241,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:sha"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/drawable/cirrect_primary_stroke.xml",
    "chars": 272,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:sha"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/drawable/correct_gray_stroke.xml",
    "chars": 340,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:sha"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/drawable/correct_primary.xml",
    "chars": 251,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:sha"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/drawable/correct_primary2dark_sel.xml",
    "chars": 366,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\n\n    <item "
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/drawable/correct_primary_dark.xml",
    "chars": 255,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:sha"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/drawable/correct_primary_light.xml",
    "chars": 256,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:sha"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/drawable/correct_primary_stroke.xml",
    "chars": 288,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:sha"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/drawable/correct_primary_stroke2solid_sel.xml",
    "chars": 274,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\n\n    <item "
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/drawable/layerlist_primarydark_indicator.xml",
    "chars": 288,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<layer-list xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <item"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/drawable/oval_primary_light_solid.xml",
    "chars": 203,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:sha"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/drawable/oval_primary_solid.xml",
    "chars": 198,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:sha"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/drawable/shape_bottom_line.xml",
    "chars": 350,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<layer-list xmlns:android=\"http://schemas.android.com/apk/res/android\">\n\n    <ite"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/drawable/shape_oval_primary2white_sel.xml",
    "chars": 278,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\n\n    <item "
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/drawable/shape_oval_primary_stroke.xml",
    "chars": 300,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:sha"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/drawable/shape_oval_primary_stroke2solid_sel.xml",
    "chars": 281,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\n\n    <item "
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/drawable/shape_oval_red_solid.xml",
    "chars": 207,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:sha"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/drawable/shape_oval_white_solid.xml",
    "chars": 199,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:sha"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/drawable/shape_top_line.xml",
    "chars": 380,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<layer-list xmlns:android=\"http://schemas.android.com/apk/res/android\">\n\n    <ite"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/drawable/wheel_bg.xml",
    "chars": 827,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<!-- \n    Android Wheel Control.\n    http://android-devblog.blogspot.com/2010/05"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/drawable/wheel_val.xml",
    "chars": 1024,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<!-- \n    Android Wheel Control.\n    http://android-devblog.blogspot.com/2010/05"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/layout/activity_image_browser.xml",
    "chars": 896,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<RelativeLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    an"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/layout/activity_web_view.xml",
    "chars": 450,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    andr"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/layout/footer_progress.xml",
    "chars": 757,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    andr"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/layout/formitem_input.xml",
    "chars": 858,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<RelativeLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    an"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/layout/formitem_select.xml",
    "chars": 1564,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<RelativeLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    an"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/layout/include_banner_with_indicator.xml",
    "chars": 978,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<RelativeLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    an"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/layout/include_ddm_listview.xml",
    "chars": 561,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    andr"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/layout/include_group_divider.xml",
    "chars": 710,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    andr"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/layout/include_refresh_list.xml",
    "chars": 467,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<android.support.v4.widget.SwipeRefreshLayout xmlns:android=\"http://schemas.andro"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/layout/include_titlebar.xml",
    "chars": 2191,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<RelativeLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    an"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/layout/item_default_drop_down.xml",
    "chars": 487,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    andr"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/layout/item_image_banner.xml",
    "chars": 859,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<RelativeLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    an"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/layout/item_image_browser.xml",
    "chars": 665,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<RelativeLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    an"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/layout/item_setting.xml",
    "chars": 1841,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    andr"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/layout/listview_dropdown_menu.xml",
    "chars": 276,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ListView xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    style=\"@"
  },
  {
    "path": "DesignResCollection_MVC/bdcodehelper/src/main/res/layout/wheel_dialog_address.xml",
    "chars": 1850,
    "preview": "<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:layout_width=\"match_parent\"\n    and"
  }
]

// ... and 499 more files (download for full content)

About this extraction

This page contains the full source code of the boredream/DesignResCollection GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 699 files (1.3 MB), approximately 335.6k tokens, and a symbol index with 2801 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!