├── Community.iml ├── README.md ├── app ├── .gitignore ├── app.iml ├── build.gradle ├── libs │ ├── arm64-v8a │ │ ├── libBaiduMapSDK_base_v3_7_3.so │ │ ├── libBaiduMapSDK_cloud_v3_7_3.so │ │ ├── libBaiduMapSDK_map_v3_7_3.so │ │ ├── libBaiduMapSDK_radar_v3_7_3.so │ │ ├── libBaiduMapSDK_search_v3_7_3.so │ │ ├── libBaiduMapSDK_util_v3_7_3.so │ │ └── liblocSDK6a.so │ ├── armeabi-v7a │ │ ├── libBaiduMapSDK_base_v3_7_3.so │ │ ├── libBaiduMapSDK_cloud_v3_7_3.so │ │ ├── libBaiduMapSDK_map_v3_7_3.so │ │ ├── libBaiduMapSDK_radar_v3_7_3.so │ │ ├── libBaiduMapSDK_search_v3_7_3.so │ │ ├── libBaiduMapSDK_util_v3_7_3.so │ │ └── liblocSDK6a.so │ ├── armeabi │ │ ├── libBaiduMapSDK_base_v3_7_3.so │ │ ├── libBaiduMapSDK_cloud_v3_7_3.so │ │ ├── libBaiduMapSDK_map_v3_7_3.so │ │ ├── libBaiduMapSDK_radar_v3_7_3.so │ │ ├── libBaiduMapSDK_search_v3_7_3.so │ │ ├── libBaiduMapSDK_util_v3_7_3.so │ │ └── liblocSDK6a.so │ ├── baidumapapi_base_v3_7_3.jar │ ├── baidumapapi_cloud_v3_7_3.jar │ ├── baidumapapi_map_v3_7_3.jar │ ├── baidumapapi_radar_v3_7_3.jar │ ├── baidumapapi_search_v3_7_3.jar │ ├── baidumapapi_util_v3_7_3.jar │ ├── locSDK_6.13.jar │ ├── x86 │ │ ├── libBaiduMapSDK_base_v3_7_3.so │ │ ├── libBaiduMapSDK_cloud_v3_7_3.so │ │ ├── libBaiduMapSDK_map_v3_7_3.so │ │ ├── libBaiduMapSDK_radar_v3_7_3.so │ │ ├── libBaiduMapSDK_search_v3_7_3.so │ │ ├── libBaiduMapSDK_util_v3_7_3.so │ │ └── liblocSDK6a.so │ └── x86_64 │ │ ├── libBaiduMapSDK_base_v3_7_3.so │ │ ├── libBaiduMapSDK_cloud_v3_7_3.so │ │ ├── libBaiduMapSDK_map_v3_7_3.so │ │ ├── libBaiduMapSDK_radar_v3_7_3.so │ │ ├── libBaiduMapSDK_search_v3_7_3.so │ │ ├── libBaiduMapSDK_util_v3_7_3.so │ │ └── liblocSDK6a.so ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── xylife │ │ └── community │ │ └── ApplicationTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── xylife │ │ │ └── community │ │ │ ├── AppContext.java │ │ │ ├── adapter │ │ │ ├── ExerciseListAdapter.java │ │ │ ├── MyFragmentPagerAdapter.java │ │ │ ├── NewsListAdapter.java │ │ │ ├── PartyListAdapter.java │ │ │ ├── PostPhotoAdapter.java │ │ │ └── viewholder │ │ │ │ ├── ExerciseViewHolder.java │ │ │ │ ├── NewsViewHolder.java │ │ │ │ └── PartyViewHolder.java │ │ │ ├── api │ │ │ ├── APIService.java │ │ │ ├── APIWrapper.java │ │ │ └── util │ │ │ │ ├── RetrofitUtil.java │ │ │ │ ├── RxHelper.java │ │ │ │ └── RxSubscriber.java │ │ │ ├── base │ │ │ ├── BaseActivity.java │ │ │ ├── BaseListFragment.java │ │ │ ├── BasePartyFragment.java │ │ │ └── BaseTextActivity.java │ │ │ ├── bean │ │ │ ├── Advertisement.java │ │ │ ├── Exercise.java │ │ │ ├── ImageItem.java │ │ │ ├── JavaResponse.java │ │ │ ├── News.java │ │ │ ├── NewsResponse.java │ │ │ ├── PartyEntity.java │ │ │ ├── Response.java │ │ │ ├── RowDescriptor.java │ │ │ ├── TestEntity.java │ │ │ └── TestResponse.java │ │ │ ├── exception │ │ │ └── ApiException.java │ │ │ ├── fragment │ │ │ ├── AttendNotesFragment.java │ │ │ ├── CommentFragment.java │ │ │ ├── HomeFragment.java │ │ │ ├── PartyDetailFragment.java │ │ │ ├── PartyFragment.java │ │ │ ├── ScheduleFragment.java │ │ │ └── UserCenterFragment.java │ │ │ ├── listener │ │ │ └── OnRowClickListener.java │ │ │ ├── ui │ │ │ ├── ChargingPileActivity.java │ │ │ ├── CommentActivity.java │ │ │ ├── FeedbackActivity.java │ │ │ ├── ForgetPwdActivity.java │ │ │ ├── FragmentDetailsActivity.java │ │ │ ├── LoginActivity.java │ │ │ ├── MainActivity.java │ │ │ ├── PartyDetailActivity.java │ │ │ ├── PostActivity.java │ │ │ ├── RegisterActivity.java │ │ │ ├── SettingActivity.java │ │ │ ├── SignActivity.java │ │ │ ├── SplashActivity.java │ │ │ ├── UserInfoActivity.java │ │ │ └── error │ │ │ │ └── ErrorLayout.java │ │ │ ├── utils │ │ │ ├── AESCrypt.java │ │ │ ├── Bimp.java │ │ │ ├── Constant.java │ │ │ ├── DoubleClickExitHelper.java │ │ │ ├── FlipitAnimation.java │ │ │ ├── RecyclerItemAnimator.java │ │ │ └── RowActionEnum.java │ │ │ ├── view │ │ │ └── HomeSlideShowView.java │ │ │ └── widget │ │ │ ├── CustomAppCompatEditText.java │ │ │ ├── GradientIconView.java │ │ │ └── GradientTextView.java │ └── res │ │ ├── anim │ │ ├── anim_scale_in.xml │ │ └── anim_scale_out.xml │ │ ├── drawable │ │ ├── abs_list_selector_background_transition_holo_dark.xml │ │ ├── action_bar_item_background.xml │ │ ├── ic_product_default.9.png │ │ ├── list_selector_holo_dark.xml │ │ ├── picker_photo_bg.xml │ │ ├── progressloading.xml │ │ ├── selector_common_button.xml │ │ ├── selector_common_corners_button.xml │ │ ├── selector_green_corners_button.xml │ │ ├── shape_common_button.xml │ │ ├── shape_common_button_pressed.xml │ │ ├── shape_common_corners_button.xml │ │ ├── shape_common_corners_button_pressed.xml │ │ ├── shape_green_corners_button.xml │ │ ├── shape_green_corners_button_pressed.xml │ │ ├── shape_orange_corners_bg.xml │ │ └── widget_general_row_selector.xml │ │ ├── layout-v21 │ │ └── layout_list_item_exercise.xml │ │ ├── layout │ │ ├── acitivity_feedback.xml │ │ ├── activity_charging_pile.xml │ │ ├── activity_comment.xml │ │ ├── activity_forget_pwd.xml │ │ ├── activity_fragment_details.xml │ │ ├── activity_login.xml │ │ ├── activity_main.xml │ │ ├── activity_party.xml │ │ ├── activity_party_detail.xml │ │ ├── activity_post.xml │ │ ├── activity_register.xml │ │ ├── activity_setting.xml │ │ ├── activity_sign.xml │ │ ├── activity_splash.xml │ │ ├── activity_user_info.xml │ │ ├── fragment_attend_notes.xml │ │ ├── fragment_base_party.xml │ │ ├── fragment_comment.xml │ │ ├── fragment_home.xml │ │ ├── fragment_party_detail.xml │ │ ├── fragment_pull_refresh_recyclerview.xml │ │ ├── fragment_schedule.xml │ │ ├── fragment_tab_viewpager.xml │ │ ├── fragment_user_center.xml │ │ ├── gradient_icon_layout.xml │ │ ├── gradient_textview_layout.xml │ │ ├── item_party.xml │ │ ├── layout_home_header.xml │ │ ├── layout_horizontal_line.xml │ │ ├── layout_list_item_exercise.xml │ │ ├── layout_list_item_news.xml │ │ ├── layout_slideshow.xml │ │ ├── picker_item_photo.xml │ │ ├── title_bar.xml │ │ ├── title_bar_text.xml │ │ ├── user_info_layout.xml │ │ ├── view_empty_layout.xml │ │ ├── view_error_layout.xml │ │ ├── widget_round_row.xml │ │ └── widget_round_text_row.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ ├── abs__list_focused_holo.9.png │ │ ├── abs__list_longpressed_holo.9.png │ │ ├── abs__list_pressed_holo_dark.9.png │ │ ├── abs__list_selector_disabled_holo_dark.9.png │ │ ├── back_narrow_btn.png │ │ ├── btn_add_big.png │ │ ├── checkbox_checked.png │ │ ├── dot_blur.png │ │ ├── dot_focus.png │ │ ├── girl.png │ │ ├── ic_about.png │ │ ├── ic_around_shop.png │ │ ├── ic_avatar.png │ │ ├── ic_feedback.png │ │ ├── ic_launcher.png │ │ ├── ic_loaction.png │ │ ├── ic_page_failed.png │ │ ├── ic_page_icon_network.png │ │ ├── ic_photo_default.9.png │ │ ├── ic_scan.png │ │ ├── ic_time.png │ │ ├── ic_to_top.png │ │ ├── ic_user_avater.png │ │ ├── loading.png │ │ └── right_arrow.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_menu_home.png │ │ ├── ic_menu_home_pressed.png │ │ ├── ic_menu_me.png │ │ ├── ic_menu_me_pressed.png │ │ ├── ic_menu_schedule.png │ │ └── ic_menu_schedule_pressed.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ ├── values-w820dp │ │ └── dimens.xml │ │ ├── values-zh-rCN │ │ ├── arrays.xml │ │ └── strings.xml │ │ └── values │ │ ├── arrays.xml │ │ ├── attr.xml │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── xylife │ └── community │ └── ExampleUnitTest.java ├── build.gradle ├── build ├── generated │ └── mockable-android-23.jar └── intermediates │ ├── dex-cache │ └── cache.xml │ └── proguard-files │ └── proguard-android.txt-2.2.0-alpha2 ├── common_library ├── .gitignore ├── build.gradle ├── common_library.iml ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── android │ │ └── framewok │ │ └── ApplicationTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── android │ │ │ └── framewok │ │ │ ├── AppBaseContext.java │ │ │ ├── AppManager.java │ │ │ ├── base │ │ │ ├── BaseFragment.java │ │ │ ├── BaseParentActivity.java │ │ │ └── ListBaseAdapter.java │ │ │ ├── bean │ │ │ └── Entity.java │ │ │ ├── interf │ │ │ ├── BaseFragmentInterface.java │ │ │ └── BaseViewInterface.java │ │ │ ├── util │ │ │ ├── AppToast.java │ │ │ ├── DialogHelper.java │ │ │ ├── NetUtil.java │ │ │ ├── TLog.java │ │ │ └── Util.java │ │ │ └── widget │ │ │ ├── CircleImageView.java │ │ │ └── DrawableCenterTextView.java │ └── res │ │ ├── drawable-xhdpi │ │ └── loading_progress.png │ │ ├── drawable │ │ ├── bg_loading_dialog_shape.xml │ │ ├── loading_dialog_progressbar.xml │ │ ├── selector_white_preferences_item.xml │ │ ├── shape_white_preferences_item.xml │ │ └── shape_white_preferences_item_pressed.xml │ │ ├── layout │ │ └── layout_loading_dialog.xml │ │ └── values │ │ ├── attr.xml │ │ ├── dimens.xml │ │ ├── ids.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── android │ └── framewok │ └── ExampleUnitTest.java ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── local.properties ├── pic └── app.gif ├── pull_recyclerview_library ├── .gitignore ├── build.gradle ├── libs │ └── universal-image-loader-1.9.5.jar ├── proguard-rules.pro ├── pull_recyclerview_library.iml └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── cundong │ │ └── recyclerview │ │ └── ApplicationTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── cundong │ │ │ └── recyclerview │ │ │ ├── ArrowRefreshHeader.java │ │ │ ├── BaseRefreshHeader.java │ │ │ ├── CommonFooter.java │ │ │ ├── CommonHeader.java │ │ │ ├── CustRecyclerView.java │ │ │ ├── ExStaggeredGridLayoutManager.java │ │ │ ├── HeaderAndFooterRecyclerViewAdapter.java │ │ │ ├── HeaderLayout.java │ │ │ ├── HeaderSpanSizeLookup.java │ │ │ ├── JellyView.java │ │ │ ├── LoadingFooter.java │ │ │ ├── LoadingMoreFooter.java │ │ │ ├── MarginDecoration.java │ │ │ ├── OnListLoadNextPageListener.java │ │ │ ├── OnScrollListener.java │ │ │ ├── ProgressStyle.java │ │ │ ├── RecyclerOnScrollListener.java │ │ │ ├── RecyclerViewStateUtils.java │ │ │ ├── RecyclerViewUtils.java │ │ │ ├── ScrollDetector.java │ │ │ ├── ShowHideOnScroll.java │ │ │ ├── SimpleViewSwitcher.java │ │ │ └── progressindicator │ │ │ ├── AVLoadingIndicatorView.java │ │ │ └── indicator │ │ │ ├── BallBeatIndicator.java │ │ │ ├── BallClipRotateIndicator.java │ │ │ ├── BallClipRotateMultipleIndicator.java │ │ │ ├── BallClipRotatePulseIndicator.java │ │ │ ├── BallGridBeatIndicator.java │ │ │ ├── BallGridPulseIndicator.java │ │ │ ├── BallPulseIndicator.java │ │ │ ├── BallPulseRiseIndicator.java │ │ │ ├── BallPulseSyncIndicator.java │ │ │ ├── BallRotateIndicator.java │ │ │ ├── BallScaleIndicator.java │ │ │ ├── BallScaleMultipleIndicator.java │ │ │ ├── BallScaleRippleIndicator.java │ │ │ ├── BallScaleRippleMultipleIndicator.java │ │ │ ├── BallSpinFadeLoaderIndicator.java │ │ │ ├── BallTrianglePathIndicator.java │ │ │ ├── BallZigZagDeflectIndicator.java │ │ │ ├── BallZigZagIndicator.java │ │ │ ├── BaseIndicatorController.java │ │ │ ├── CubeTransitionIndicator.java │ │ │ ├── LineScaleIndicator.java │ │ │ ├── LineScalePartyIndicator.java │ │ │ ├── LineScalePulseOutIndicator.java │ │ │ ├── LineScalePulseOutRapidIndicator.java │ │ │ ├── LineSpinFadeLoaderIndicator.java │ │ │ ├── PacmanIndicator.java │ │ │ ├── SemiCircleSpinIndicator.java │ │ │ ├── SquareSpinIndicator.java │ │ │ └── TriangleSkewSpinIndicator.java │ └── res │ │ ├── anim │ │ ├── floating_action_button_hide.xml │ │ └── floating_action_button_show.xml │ │ ├── drawable-hdpi │ │ ├── ic_loading_rotate.png │ │ ├── ic_pulltorefresh_arrow.png │ │ ├── ic_tip.png │ │ ├── loading_01.png │ │ ├── loading_02.png │ │ ├── loading_03.png │ │ ├── loading_04.png │ │ ├── loading_05.png │ │ ├── loading_06.png │ │ ├── loading_07.png │ │ ├── loading_08.png │ │ ├── loading_09.png │ │ ├── loading_10.png │ │ ├── loading_11.png │ │ ├── loading_12.png │ │ └── progressbar.xml │ │ ├── drawable │ │ └── progressloading.xml │ │ ├── layout │ │ ├── layout_recyclerview_footer.xml │ │ ├── layout_recyclerview_header.xml │ │ ├── layout_recyclerview_list_footer.xml │ │ ├── layout_recyclerview_list_footer_end.xml │ │ ├── layout_recyclerview_list_footer_loading.xml │ │ ├── layout_recyclerview_list_footer_network_error.xml │ │ ├── listview_header.xml │ │ └── pull_to_refresh_head.xml │ │ └── values │ │ ├── attr.xml │ │ ├── colors.xml │ │ ├── dimens.xml │ │ └── strings.xml │ └── test │ └── java │ └── com │ └── cundong │ └── recyclerview │ └── ExampleUnitTest.java └── settings.gradle /Community.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | #Community 2 | 3 | APP基本框架: 4 | - 使用Retrofit+RxJava! 5 | - 底部滑动导航! 6 | - RecyclerView下拉刷新,滑动底部自动加载更多。 7 | 8 | 9 | 效果图: 10 | 11 | ![](https://github.com/jdsjlzx/Community/blob/master/pic/app.gif?raw=true) 12 | 13 | 本项目使用的pull_recyclerview_library框架已经更名,最新请移步: 14 | https://github.com/jdsjlzx/LRecyclerView 15 | 16 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | apply plugin: 'com.neenbedankt.android-apt' 3 | 4 | repositories { 5 | flatDir { 6 | dir 'libs' 7 | } 8 | } 9 | 10 | android { 11 | compileSdkVersion 23 12 | buildToolsVersion "23.0.3" 13 | 14 | sourceSets { 15 | main { 16 | jniLibs.srcDir 'libs' 17 | } 18 | } 19 | 20 | defaultConfig { 21 | applicationId "com.xylife.community" 22 | minSdkVersion 16 23 | targetSdkVersion 23 24 | versionCode 1 25 | versionName "1.0" 26 | } 27 | 28 | buildTypes { 29 | release { 30 | minifyEnabled false 31 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 32 | } 33 | } 34 | } 35 | 36 | dependencies { 37 | compile fileTree(include: ['*.jar'], dir: 'libs') 38 | testCompile 'junit:junit:4.12' 39 | compile project(':pull_recyclerview_library') 40 | compile project(':common_library') 41 | compile 'com.android.support:design:23.4.0' 42 | compile 'com.android.support:appcompat-v7:23.4.0' 43 | compile 'com.android.support:cardview-v7:23.4.0' 44 | compile 'com.squareup.okhttp3:okhttp:3.2.0' 45 | compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4' 46 | compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4' 47 | compile 'com.squareup.retrofit2:adapter-rxjava:2.0.0-beta4' 48 | compile 'com.squareup.okhttp3:logging-interceptor:3.1.2' 49 | compile 'com.jakewharton:butterknife:8.0.1' 50 | compile 'com.nineoldandroids:library:2.4.0' 51 | compile 'com.github.bumptech.glide:glide:3.6.0' 52 | compile 'me.iwf.photopicker:PhotoPicker:0.8.1@aar' 53 | apt 'com.jakewharton:butterknife-compiler:8.0.1' 54 | compile 'io.reactivex:rxandroid:1.1.0' 55 | compile 'io.reactivex:rxjava:1.1.0' 56 | compile 'com.trello:rxlifecycle:0.6.1' 57 | compile 'com.trello:rxlifecycle-components:0.6.1' 58 | compile 'com.github.bumptech.glide:glide:3.6.1' 59 | compile 'jp.wasabeef:recyclerview-animators:2.2.3' 60 | } 61 | -------------------------------------------------------------------------------- /app/libs/arm64-v8a/libBaiduMapSDK_base_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/arm64-v8a/libBaiduMapSDK_base_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/arm64-v8a/libBaiduMapSDK_cloud_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/arm64-v8a/libBaiduMapSDK_cloud_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/arm64-v8a/libBaiduMapSDK_map_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/arm64-v8a/libBaiduMapSDK_map_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/arm64-v8a/libBaiduMapSDK_radar_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/arm64-v8a/libBaiduMapSDK_radar_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/arm64-v8a/libBaiduMapSDK_search_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/arm64-v8a/libBaiduMapSDK_search_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/arm64-v8a/libBaiduMapSDK_util_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/arm64-v8a/libBaiduMapSDK_util_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/arm64-v8a/liblocSDK6a.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/arm64-v8a/liblocSDK6a.so -------------------------------------------------------------------------------- /app/libs/armeabi-v7a/libBaiduMapSDK_base_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/armeabi-v7a/libBaiduMapSDK_base_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/armeabi-v7a/libBaiduMapSDK_cloud_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/armeabi-v7a/libBaiduMapSDK_cloud_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/armeabi-v7a/libBaiduMapSDK_map_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/armeabi-v7a/libBaiduMapSDK_map_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/armeabi-v7a/libBaiduMapSDK_radar_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/armeabi-v7a/libBaiduMapSDK_radar_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/armeabi-v7a/libBaiduMapSDK_search_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/armeabi-v7a/libBaiduMapSDK_search_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/armeabi-v7a/libBaiduMapSDK_util_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/armeabi-v7a/libBaiduMapSDK_util_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/armeabi-v7a/liblocSDK6a.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/armeabi-v7a/liblocSDK6a.so -------------------------------------------------------------------------------- /app/libs/armeabi/libBaiduMapSDK_base_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/armeabi/libBaiduMapSDK_base_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/armeabi/libBaiduMapSDK_cloud_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/armeabi/libBaiduMapSDK_cloud_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/armeabi/libBaiduMapSDK_map_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/armeabi/libBaiduMapSDK_map_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/armeabi/libBaiduMapSDK_radar_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/armeabi/libBaiduMapSDK_radar_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/armeabi/libBaiduMapSDK_search_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/armeabi/libBaiduMapSDK_search_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/armeabi/libBaiduMapSDK_util_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/armeabi/libBaiduMapSDK_util_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/armeabi/liblocSDK6a.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/armeabi/liblocSDK6a.so -------------------------------------------------------------------------------- /app/libs/baidumapapi_base_v3_7_3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/baidumapapi_base_v3_7_3.jar -------------------------------------------------------------------------------- /app/libs/baidumapapi_cloud_v3_7_3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/baidumapapi_cloud_v3_7_3.jar -------------------------------------------------------------------------------- /app/libs/baidumapapi_map_v3_7_3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/baidumapapi_map_v3_7_3.jar -------------------------------------------------------------------------------- /app/libs/baidumapapi_radar_v3_7_3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/baidumapapi_radar_v3_7_3.jar -------------------------------------------------------------------------------- /app/libs/baidumapapi_search_v3_7_3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/baidumapapi_search_v3_7_3.jar -------------------------------------------------------------------------------- /app/libs/baidumapapi_util_v3_7_3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/baidumapapi_util_v3_7_3.jar -------------------------------------------------------------------------------- /app/libs/locSDK_6.13.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/locSDK_6.13.jar -------------------------------------------------------------------------------- /app/libs/x86/libBaiduMapSDK_base_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/x86/libBaiduMapSDK_base_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/x86/libBaiduMapSDK_cloud_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/x86/libBaiduMapSDK_cloud_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/x86/libBaiduMapSDK_map_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/x86/libBaiduMapSDK_map_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/x86/libBaiduMapSDK_radar_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/x86/libBaiduMapSDK_radar_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/x86/libBaiduMapSDK_search_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/x86/libBaiduMapSDK_search_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/x86/libBaiduMapSDK_util_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/x86/libBaiduMapSDK_util_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/x86/liblocSDK6a.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/x86/liblocSDK6a.so -------------------------------------------------------------------------------- /app/libs/x86_64/libBaiduMapSDK_base_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/x86_64/libBaiduMapSDK_base_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/x86_64/libBaiduMapSDK_cloud_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/x86_64/libBaiduMapSDK_cloud_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/x86_64/libBaiduMapSDK_map_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/x86_64/libBaiduMapSDK_map_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/x86_64/libBaiduMapSDK_radar_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/x86_64/libBaiduMapSDK_radar_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/x86_64/libBaiduMapSDK_search_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/x86_64/libBaiduMapSDK_search_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/x86_64/libBaiduMapSDK_util_v3_7_3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/x86_64/libBaiduMapSDK_util_v3_7_3.so -------------------------------------------------------------------------------- /app/libs/x86_64/liblocSDK6a.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/libs/x86_64/liblocSDK6a.so -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/lizhixian/Documents/Android/studio_sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /app/src/androidTest/java/com/xylife/community/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/AppContext.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community; 2 | 3 | import android.app.Application; 4 | 5 | import com.android.framewok.AppBaseContext; 6 | import com.baidu.mapapi.SDKInitializer; 7 | 8 | public class AppContext extends Application { 9 | 10 | private static AppContext instance; 11 | 12 | public static AppContext getInstance() { 13 | return instance; 14 | } 15 | 16 | @Override 17 | public void onCreate() { 18 | super.onCreate(); 19 | instance = this; 20 | SDKInitializer.initialize(this); 21 | } 22 | 23 | 24 | 25 | 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/adapter/ExerciseListAdapter.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.adapter; 2 | 3 | import android.content.Context; 4 | import android.content.Intent; 5 | import android.support.v7.widget.RecyclerView; 6 | import android.view.LayoutInflater; 7 | import android.view.View; 8 | import android.view.ViewGroup; 9 | 10 | import com.android.framewok.base.ListBaseAdapter; 11 | import com.xylife.community.R; 12 | import com.xylife.community.adapter.viewholder.ExerciseViewHolder; 13 | import com.xylife.community.bean.Exercise; 14 | import com.xylife.community.ui.PartyDetailActivity; 15 | 16 | public class ExerciseListAdapter extends ListBaseAdapter { 17 | 18 | private Context mContext; 19 | private int lastPosition = -1; 20 | private int type = -1; // 0 首页;1 日程 21 | 22 | public ExerciseListAdapter(int type) { 23 | this.type = type; 24 | } 25 | 26 | @Override 27 | public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 28 | mContext = parent.getContext(); 29 | View view = LayoutInflater.from(mContext).inflate(R.layout.layout_list_item_exercise, parent, false); 30 | return new ExerciseViewHolder(view); 31 | } 32 | 33 | @Override 34 | public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) { 35 | final ExerciseViewHolder viewHolder = (ExerciseViewHolder) holder; 36 | final Exercise exercise = this.mDataList.get(position); 37 | 38 | viewHolder.companyNameText.setText("富电科技"); 39 | viewHolder.certificationText.setText("官方"); 40 | 41 | if (type == 1) { 42 | viewHolder.enrolBtn.setVisibility(View.GONE); 43 | } 44 | 45 | viewHolder.titleText.setText("哪种鞋最适合运动,一起来聊聊呗"); 46 | viewHolder.timeText.setText("05/30 12:00 - 06/30 12:00"); 47 | viewHolder.locationText.setText("768创意产业园"); 48 | 49 | viewHolder.itemView.setOnClickListener(new View.OnClickListener() { 50 | @Override 51 | public void onClick(View v) { 52 | Intent intent = new Intent(mContext, PartyDetailActivity.class); 53 | mContext.startActivity(intent); 54 | } 55 | }); 56 | 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/adapter/MyFragmentPagerAdapter.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.adapter; 2 | 3 | 4 | import android.support.v4.app.Fragment; 5 | import android.support.v4.app.FragmentManager; 6 | import android.support.v4.app.FragmentPagerAdapter; 7 | 8 | import java.util.ArrayList; 9 | 10 | public class MyFragmentPagerAdapter extends FragmentPagerAdapter { 11 | 12 | private ArrayList mFragments; 13 | 14 | private CharSequence[] mLabels; 15 | 16 | public MyFragmentPagerAdapter(FragmentManager fm, ArrayList mFragments, CharSequence[] mLabels) { 17 | super(fm); 18 | this.mFragments = mFragments; 19 | this.mLabels = mLabels; 20 | } 21 | 22 | 23 | @Override 24 | public Fragment getItem(int position) { 25 | return mFragments.get(position); 26 | 27 | } 28 | 29 | @Override 30 | public int getCount() { 31 | return mFragments.size(); 32 | } 33 | 34 | @Override 35 | public CharSequence getPageTitle(int position) { 36 | return mLabels[position]; 37 | } 38 | 39 | 40 | } 41 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/adapter/NewsListAdapter.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.adapter; 2 | 3 | import android.content.Context; 4 | import android.content.Intent; 5 | import android.support.v7.widget.RecyclerView; 6 | import android.view.LayoutInflater; 7 | import android.view.View; 8 | import android.view.ViewGroup; 9 | 10 | import com.android.framewok.base.ListBaseAdapter; 11 | import com.xylife.community.R; 12 | import com.xylife.community.adapter.viewholder.NewsViewHolder; 13 | import com.xylife.community.bean.News; 14 | import com.xylife.community.ui.PartyDetailActivity; 15 | 16 | public class NewsListAdapter extends ListBaseAdapter { 17 | 18 | private Context mContext; 19 | 20 | public NewsListAdapter() { 21 | } 22 | 23 | @Override 24 | public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 25 | mContext = parent.getContext(); 26 | View view = LayoutInflater.from(mContext).inflate(R.layout.layout_list_item_news, parent, false); 27 | return new NewsViewHolder(view); 28 | } 29 | 30 | @Override 31 | public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { 32 | final NewsViewHolder viewHolder = (NewsViewHolder) holder; 33 | final News news = this.mDataList.get(position); 34 | 35 | viewHolder.titleText.setText(news.famous_saying); 36 | viewHolder.speakerText.setText(news.famous_name); 37 | 38 | viewHolder.itemView.setOnClickListener(new View.OnClickListener() { 39 | @Override 40 | public void onClick(View v) { 41 | Intent intent = new Intent(mContext, PartyDetailActivity.class); 42 | mContext.startActivity(intent); 43 | } 44 | }); 45 | 46 | 47 | 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/adapter/PartyListAdapter.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.adapter; 2 | 3 | import android.support.v7.widget.RecyclerView; 4 | import android.view.LayoutInflater; 5 | import android.view.View; 6 | import android.view.ViewGroup; 7 | 8 | import com.android.framewok.base.ListBaseAdapter; 9 | import com.xylife.community.R; 10 | import com.xylife.community.adapter.viewholder.NewsViewHolder; 11 | import com.xylife.community.adapter.viewholder.PartyViewHolder; 12 | import com.xylife.community.bean.News; 13 | import com.xylife.community.bean.PartyEntity; 14 | 15 | import java.util.Collection; 16 | 17 | /** 18 | * Created by SK on 2016-05-18. 19 | */ 20 | public class PartyListAdapter extends ListBaseAdapter { 21 | 22 | @Override 23 | public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 24 | mContext = parent.getContext(); 25 | View view = LayoutInflater.from(mContext).inflate(R.layout.item_party, parent, false); 26 | return new PartyViewHolder(view); 27 | } 28 | 29 | @Override 30 | public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { 31 | super.onBindViewHolder(holder, position); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/adapter/viewholder/ExerciseViewHolder.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.adapter.viewholder; 2 | 3 | import android.support.v7.widget.RecyclerView; 4 | import android.view.View; 5 | import android.widget.Button; 6 | import android.widget.ImageView; 7 | import android.widget.TextView; 8 | 9 | import com.xylife.community.R; 10 | 11 | import butterknife.BindView; 12 | import butterknife.ButterKnife; 13 | 14 | public class ExerciseViewHolder extends RecyclerView.ViewHolder{ 15 | @BindView(R.id.logo_image) public ImageView logoImage; 16 | @BindView(R.id.certification_text) public TextView certificationText; 17 | @BindView(R.id.company_name_text) public TextView companyNameText; 18 | @BindView(R.id.title_text) public TextView titleText; 19 | @BindView(R.id.time_text) public TextView timeText; 20 | @BindView(R.id.location_text) public TextView locationText; 21 | @BindView(R.id.enrol_btn) public Button enrolBtn; 22 | 23 | 24 | public ExerciseViewHolder(View itemView) { 25 | super(itemView); 26 | ButterKnife.bind(this,itemView); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/adapter/viewholder/NewsViewHolder.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.adapter.viewholder; 2 | 3 | import android.support.v7.widget.RecyclerView; 4 | import android.view.View; 5 | import android.widget.TextView; 6 | 7 | import com.xylife.community.R; 8 | 9 | import butterknife.BindView; 10 | import butterknife.ButterKnife; 11 | 12 | public class NewsViewHolder extends RecyclerView.ViewHolder{ 13 | @BindView(R.id.title_text) public TextView titleText; 14 | @BindView(R.id.speaker_text) public TextView speakerText; 15 | 16 | 17 | public NewsViewHolder(View itemView) { 18 | super(itemView); 19 | ButterKnife.bind(this,itemView); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/adapter/viewholder/PartyViewHolder.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.adapter.viewholder; 2 | 3 | import android.support.v7.widget.RecyclerView; 4 | import android.view.View; 5 | 6 | import butterknife.ButterKnife; 7 | 8 | /** 9 | * Created by SK on 2016-05-18. 10 | */ 11 | public class PartyViewHolder extends RecyclerView.ViewHolder { 12 | 13 | 14 | public PartyViewHolder(View itemView) { 15 | super(itemView); 16 | ButterKnife.bind(this,itemView); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/api/APIService.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.api; 2 | 3 | import com.xylife.community.bean.Advertisement; 4 | import com.xylife.community.bean.Exercise; 5 | import com.xylife.community.bean.JavaResponse; 6 | import com.xylife.community.bean.Response; 7 | import com.xylife.community.bean.TestResponse; 8 | 9 | import java.util.List; 10 | 11 | import retrofit2.http.GET; 12 | import retrofit2.http.Header; 13 | import retrofit2.http.Query; 14 | import rx.Observable; 15 | 16 | /** 17 | * Retrofit 2.0中我们还可以在@Url里面定义完整的URL:这种情况下Base URL会被忽略。 18 | */ 19 | public interface APIService { 20 | 21 | @GET("avatardata/mingrenmingyan/lookup") 22 | Observable>> getFamousResult(@Header("apiKey") String apiKey, 23 | @Query("keyword") String keyword, 24 | @Query("page") int page, 25 | @Query("rows") int rows); 26 | 27 | @GET("http://ip.taobao.com/service/getIpInfo.php") 28 | Observable getTestResult(@Query("ip") String keyword); 29 | 30 | @GET("http://203.130.41.104:8050/guizi-app-jiqimao/haier/user/userLoginNew.json") 31 | Observable login(@Query("phone") String name, 32 | @Query("password") String password, 33 | @Query("userType") int userType); 34 | 35 | @GET("http://203.130.41.104:8050/guizi-app-jiqimao/haier/version/findAdvertImg.json?attType=5") 36 | Observable>> getBannerImages(); 37 | } 38 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/api/util/RetrofitUtil.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.api.util; 2 | 3 | 4 | import com.xylife.community.api.APIService; 5 | import com.xylife.community.utils.Constant; 6 | 7 | import okhttp3.OkHttpClient; 8 | import okhttp3.logging.HttpLoggingInterceptor; 9 | import retrofit2.Retrofit; 10 | import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory; 11 | import retrofit2.converter.gson.GsonConverterFactory; 12 | 13 | public class RetrofitUtil { 14 | /** 15 | * 服务器地址 16 | */ 17 | private static final String API_HOST = Constant.BASEURL; 18 | 19 | private static final String API_TEST_HOST = Constant.BASEURL_IP; 20 | 21 | private static Retrofit mRetrofit; 22 | private static APIService mAPIService; 23 | 24 | private static Retrofit getRetrofit() { 25 | if (mRetrofit == null) { 26 | // Log 27 | HttpLoggingInterceptor logging = new HttpLoggingInterceptor(); 28 | logging.setLevel(HttpLoggingInterceptor.Level.BODY); 29 | OkHttpClient client = new OkHttpClient.Builder().addInterceptor(logging).build(); 30 | 31 | mRetrofit = new Retrofit.Builder() 32 | .baseUrl(API_HOST) 33 | .addConverterFactory(GsonConverterFactory.create()) 34 | .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) 35 | .client(client) 36 | .build(); 37 | } 38 | return mRetrofit; 39 | } 40 | 41 | public static APIService getAPIService() { 42 | if (mAPIService == null) { 43 | mAPIService = getRetrofit().create(APIService.class); 44 | } 45 | return mAPIService; 46 | } 47 | 48 | 49 | } 50 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/api/util/RxHelper.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.api.util; 2 | 3 | 4 | import com.android.framewok.util.DialogHelper; 5 | import com.trello.rxlifecycle.ActivityEvent; 6 | import com.trello.rxlifecycle.RxLifecycle; 7 | import com.trello.rxlifecycle.components.support.RxAppCompatActivity; 8 | 9 | import rx.Observable; 10 | import rx.android.schedulers.AndroidSchedulers; 11 | import rx.functions.Action0; 12 | import rx.schedulers.Schedulers; 13 | 14 | public class RxHelper { 15 | private String mMessage; 16 | 17 | public RxHelper(String message){ 18 | mMessage = message; 19 | } 20 | 21 | //子线程运行,主线程回调 22 | public Observable.Transformer io_main(final RxAppCompatActivity context) { 23 | return new Observable.Transformer() { 24 | 25 | @Override 26 | public Observable call(Observable tObservable) { 27 | 28 | Observable observable = (Observable) tObservable 29 | .subscribeOn(Schedulers.io()) 30 | .doOnSubscribe(new Action0() { 31 | @Override 32 | public void call() { 33 | DialogHelper.showProgressDlg(context, mMessage); 34 | } 35 | }) 36 | .subscribeOn(AndroidSchedulers.mainThread()) 37 | .observeOn(AndroidSchedulers.mainThread()) 38 | .compose(RxLifecycle.bindUntilEvent(context.lifecycle(), ActivityEvent.STOP)); 39 | 40 | return observable; 41 | 42 | } 43 | }; 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/api/util/RxSubscriber.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.api.util; 2 | 3 | import com.android.framewok.util.DialogHelper; 4 | 5 | import rx.Subscriber; 6 | 7 | /** 8 | * Created by Lzx on 2016/5/27. 9 | */ 10 | 11 | public abstract class RxSubscriber extends Subscriber { 12 | 13 | @Override 14 | public void onCompleted() { 15 | DialogHelper.stopProgressDlg(); 16 | } 17 | 18 | @Override 19 | public void onError(Throwable e) { 20 | e.printStackTrace(); 21 | _onError(e.toString()); 22 | 23 | } 24 | 25 | @Override 26 | public void onNext(T t) { 27 | _onNext(t); 28 | } 29 | 30 | public abstract void _onNext(T t); 31 | 32 | public abstract void _onError(String msg); 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/base/BaseActivity.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.base; 2 | 3 | import android.view.View; 4 | import android.widget.ImageView; 5 | import android.widget.TextView; 6 | 7 | import com.android.framewok.base.BaseParentActivity; 8 | import com.xylife.community.R; 9 | 10 | import butterknife.BindView; 11 | import butterknife.ButterKnife; 12 | import butterknife.OnClick; 13 | 14 | public abstract class BaseActivity extends BaseParentActivity implements View.OnClickListener{ 15 | @BindView(R.id.title_text) 16 | protected TextView mTitleText; 17 | @BindView(R.id.back_img) 18 | protected ImageView mBackBtn; 19 | @BindView(R.id.right_img) 20 | protected ImageView mRightBtn; 21 | 22 | @Override 23 | protected void initTitleBar() { 24 | ButterKnife.bind(this); 25 | 26 | } 27 | 28 | @Override 29 | @OnClick({R.id.back_img}) 30 | public void onClick(View view) { 31 | switch (view.getId()) { 32 | case R.id.back_img: 33 | onBackPressed(); 34 | break; 35 | default: 36 | break; 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/base/BasePartyFragment.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.base; 2 | 3 | import android.os.Bundle; 4 | import android.support.v7.widget.LinearLayoutManager; 5 | import android.view.View; 6 | 7 | import com.android.framewok.base.ListBaseAdapter; 8 | import com.android.framewok.util.TLog; 9 | import com.xylife.community.R; 10 | import com.xylife.community.adapter.PartyListAdapter; 11 | import com.xylife.community.bean.Exercise; 12 | import com.xylife.community.bean.Response; 13 | 14 | import java.util.List; 15 | 16 | import rx.Observable; 17 | 18 | /** 19 | * Created by SK on 2016-05-25. 20 | */ 21 | public class BasePartyFragment extends BaseListFragment> { 22 | 23 | public static BasePartyFragment newInstance(String title) { 24 | BasePartyFragment fragment = new BasePartyFragment(); 25 | Bundle args = new Bundle(); 26 | args.putString("title", title); 27 | fragment.setArguments(args); 28 | return fragment; 29 | } 30 | 31 | @Override 32 | public void initView(View view) { 33 | super.initView(view); 34 | } 35 | 36 | @Override 37 | public void initData() { 38 | super.initData(); 39 | } 40 | 41 | @Override 42 | protected int getLayoutId() { 43 | return R.layout.fragment_base_party; 44 | } 45 | 46 | @Override 47 | protected ListBaseAdapter getListAdapter() { 48 | return new PartyListAdapter(); 49 | } 50 | 51 | @Override 52 | protected void initLayoutManager() { 53 | mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); 54 | } 55 | 56 | @Override 57 | protected Observable>> sendRequestData() { 58 | TLog.log("sendRequestData mCurrentPage = " + mCurrentPage); 59 | //return APIWrapper.getInstance().queryLookUp("人才",mCurrentPage); 60 | return null; 61 | } 62 | 63 | 64 | } 65 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/base/BaseTextActivity.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.base; 2 | 3 | import android.view.View; 4 | import android.widget.ImageView; 5 | import android.widget.TextView; 6 | 7 | import com.android.framewok.base.BaseParentActivity; 8 | import com.xylife.community.R; 9 | 10 | import butterknife.BindView; 11 | import butterknife.ButterKnife; 12 | import butterknife.OnClick; 13 | 14 | public abstract class BaseTextActivity extends BaseParentActivity implements View.OnClickListener{ 15 | @BindView(R.id.title_text) 16 | protected TextView mTitleText; 17 | @BindView(R.id.back_img) 18 | protected ImageView mBackBtn; 19 | @BindView(R.id.right_text) 20 | protected TextView mRightText; 21 | 22 | @Override 23 | protected void initTitleBar() { 24 | ButterKnife.bind(this); 25 | 26 | } 27 | 28 | @Override 29 | @OnClick({R.id.back_img}) 30 | public void onClick(View view) { 31 | switch (view.getId()) { 32 | case R.id.back_img: 33 | onBackPressed(); 34 | break; 35 | default: 36 | break; 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/bean/Advertisement.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.bean; 2 | 3 | public class Advertisement { 4 | 5 | public String attPathUrl; 6 | public String attUrl; 7 | } 8 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/bean/Exercise.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.bean; 2 | 3 | import com.android.framewok.bean.Entity; 4 | 5 | /** 6 | * 集体活动 7 | */ 8 | public class Exercise extends Entity { 9 | public String famous_name; 10 | public String famous_saying; 11 | } 12 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/bean/ImageItem.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.bean; 2 | 3 | import java.io.IOException; 4 | import java.io.Serializable; 5 | 6 | import android.graphics.Bitmap; 7 | 8 | import com.xylife.community.utils.Bimp; 9 | 10 | 11 | public class ImageItem implements Serializable { 12 | public String imageId; 13 | public String thumbnailPath; 14 | public String imagePath; 15 | private Bitmap bitmap; 16 | public boolean isSelected = false; 17 | 18 | public String getImageId() { 19 | return imageId; 20 | } 21 | public void setImageId(String imageId) { 22 | this.imageId = imageId; 23 | } 24 | public String getThumbnailPath() { 25 | return thumbnailPath; 26 | } 27 | public void setThumbnailPath(String thumbnailPath) { 28 | this.thumbnailPath = thumbnailPath; 29 | } 30 | public String getImagePath() { 31 | return imagePath; 32 | } 33 | public void setImagePath(String imagePath) { 34 | this.imagePath = imagePath; 35 | } 36 | public boolean isSelected() { 37 | return isSelected; 38 | } 39 | public void setSelected(boolean isSelected) { 40 | this.isSelected = isSelected; 41 | } 42 | public Bitmap getBitmap() { 43 | if(bitmap == null){ 44 | try { 45 | bitmap = Bimp.revitionImageSize(imagePath); 46 | } catch (IOException e) { 47 | // TODO Auto-generated catch block 48 | e.printStackTrace(); 49 | } 50 | } 51 | return bitmap; 52 | } 53 | public void setBitmap(Bitmap bitmap) { 54 | this.bitmap = bitmap; 55 | } 56 | 57 | 58 | 59 | } 60 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/bean/JavaResponse.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.bean; 2 | 3 | public class JavaResponse extends Response{ 4 | 5 | public int infoCode; 6 | public String message; 7 | public T data; 8 | 9 | public boolean isSuccess() { 10 | return infoCode == 200; 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/bean/News.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.bean; 2 | 3 | import com.android.framewok.bean.Entity; 4 | 5 | public class News extends Entity { 6 | public String famous_name; 7 | public String famous_saying; 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/bean/NewsResponse.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.bean; 2 | 3 | import java.util.List; 4 | 5 | public class NewsResponse extends Response{ 6 | 7 | public int total; 8 | public int error_code; 9 | public String reason; 10 | public List result; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/bean/PartyEntity.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.bean; 2 | 3 | import com.android.framewok.bean.Entity; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * Created by SK on 2016-05-18. 9 | */ 10 | public class PartyEntity extends Entity implements Serializable { 11 | 12 | 13 | 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/bean/Response.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.bean; 2 | 3 | 4 | public class Response { 5 | 6 | public boolean isSuccess() { 7 | return error_code == 0; 8 | } 9 | 10 | 11 | public int total; 12 | public int error_code; 13 | public String reason; 14 | public T result; 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/bean/RowDescriptor.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.bean; 2 | 3 | import com.xylife.community.utils.RowActionEnum; 4 | 5 | /** 6 | * Created by Twilight on 2015/1/25. 7 | */ 8 | public class RowDescriptor { 9 | public int iconRes; 10 | public String lable; 11 | public RowActionEnum action; 12 | } 13 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/bean/TestEntity.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.bean; 2 | 3 | import com.android.framewok.bean.Entity; 4 | 5 | /** 6 | * Created by SK on 2016-05-24. 7 | */ 8 | public class TestEntity extends Entity{ 9 | 10 | public String country; 11 | 12 | public String country_id; 13 | 14 | public String ip; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/bean/TestResponse.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.bean; 2 | 3 | import junit.framework.Test; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * Created by SK on 2016-05-24. 9 | */ 10 | public class TestResponse { 11 | 12 | public int code; 13 | 14 | public TestEntity data; 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/exception/ApiException.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.exception; 2 | 3 | /** 4 | * Created by liukun on 16/3/10. 5 | */ 6 | public class ApiException extends RuntimeException { 7 | 8 | public static final int USER_NOT_EXIST = 100; 9 | public static final int WRONG_PASSWORD = 101; 10 | 11 | public ApiException(int resultCode) { 12 | this(getApiExceptionMessage(resultCode)); 13 | } 14 | 15 | public ApiException(String detailMessage) { 16 | super(detailMessage); 17 | } 18 | 19 | /** 20 | * 由于服务器传递过来的错误信息直接给用户看的话,用户未必能够理解 21 | * 需要根据错误码对错误信息进行一个转换,在显示给用户 22 | * @param code 23 | * @return 24 | */ 25 | private static String getApiExceptionMessage(int code){ 26 | String message = ""; 27 | switch (code) { 28 | case USER_NOT_EXIST: 29 | message = "该用户不存在"; 30 | break; 31 | case WRONG_PASSWORD: 32 | message = "密码错误"; 33 | break; 34 | default: 35 | message = "未知错误"; 36 | 37 | } 38 | return message; 39 | } 40 | } 41 | 42 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/fragment/AttendNotesFragment.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.fragment; 2 | 3 | import com.android.framewok.base.BaseFragment; 4 | import com.xylife.community.R; 5 | 6 | /** 7 | * Created by SK on 2016-05-27. 8 | */ 9 | public class AttendNotesFragment extends BaseFragment { 10 | 11 | public AttendNotesFragment() { 12 | } 13 | 14 | @Override 15 | protected int getLayoutId() { 16 | return R.layout.fragment_attend_notes; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/fragment/CommentFragment.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.fragment; 2 | 3 | import android.os.Bundle; 4 | import android.support.annotation.Nullable; 5 | import android.view.View; 6 | import android.widget.Button; 7 | import android.widget.TextView; 8 | 9 | import com.android.framewok.base.BaseFragment; 10 | import com.xylife.community.R; 11 | import com.xylife.community.ui.CommentActivity; 12 | 13 | import butterknife.BindView; 14 | import butterknife.ButterKnife; 15 | 16 | /** 17 | * Created by SK on 2016-05-27. 18 | */ 19 | public class CommentFragment extends BaseFragment{ 20 | 21 | @BindView(R.id.comment_btn) 22 | Button comment; 23 | 24 | public CommentFragment() { 25 | } 26 | 27 | @Override 28 | protected int getLayoutId() { 29 | return R.layout.fragment_comment; 30 | } 31 | 32 | 33 | @Override 34 | public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 35 | super.onViewCreated(view, savedInstanceState); 36 | ButterKnife.bind(this, view); 37 | initView(view); 38 | initData(); 39 | } 40 | 41 | @Override 42 | public void initView(View view) { 43 | comment.setOnClickListener(this); 44 | } 45 | 46 | @Override 47 | public void onClick(View view) { 48 | switch (view.getId()) { 49 | case R.id.comment_btn: 50 | gotoActivity(CommentActivity.class); 51 | break; 52 | default: 53 | break; 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/fragment/HomeFragment.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.fragment; 2 | 3 | import android.support.v7.widget.LinearLayoutManager; 4 | import android.view.View; 5 | 6 | import com.android.framewok.base.ListBaseAdapter; 7 | import com.cundong.recyclerview.CommonHeader; 8 | import com.cundong.recyclerview.RecyclerViewUtils; 9 | import com.xylife.community.R; 10 | import com.xylife.community.adapter.ExerciseListAdapter; 11 | import com.xylife.community.api.APIWrapper; 12 | import com.xylife.community.base.BaseListFragment; 13 | import com.xylife.community.bean.Exercise; 14 | import com.xylife.community.bean.Response; 15 | import com.xylife.community.view.HomeSlideShowView; 16 | 17 | import java.util.List; 18 | 19 | import rx.Observable; 20 | 21 | 22 | public class HomeFragment extends BaseListFragment> { 23 | 24 | private HomeSlideShowView slideShowView; 25 | @Override 26 | public void initView(View view) { 27 | super.initView(view); 28 | 29 | headerView = new CommonHeader(getActivity(), R.layout.layout_home_header); 30 | RecyclerViewUtils.setHeaderView(mRecyclerView, headerView); 31 | 32 | slideShowView = (HomeSlideShowView) headerView.findViewById(R.id.banner_view); 33 | } 34 | 35 | @Override 36 | protected ListBaseAdapter getListAdapter() { 37 | return new ExerciseListAdapter(0); 38 | } 39 | 40 | 41 | @Override 42 | protected void onRefresh() { 43 | if (null != slideShowView){ 44 | slideShowView.refreshView(); 45 | } 46 | 47 | } 48 | 49 | @Override 50 | public void initData() { 51 | super.initData(); 52 | 53 | } 54 | 55 | @Override 56 | protected Observable>> sendRequestData() { 57 | return APIWrapper.getInstance().queryLookUp("人才",mCurrentPage); 58 | } 59 | 60 | @Override 61 | protected void initLayoutManager() { 62 | mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); 63 | } 64 | 65 | 66 | } 67 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/fragment/PartyDetailFragment.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.fragment; 2 | 3 | import com.android.framewok.base.BaseFragment; 4 | import com.xylife.community.R; 5 | 6 | /** 7 | * Created by SK on 2016-05-27. 8 | */ 9 | public class PartyDetailFragment extends BaseFragment { 10 | 11 | 12 | public PartyDetailFragment() { 13 | 14 | } 15 | 16 | @Override 17 | protected int getLayoutId() { 18 | return R.layout.fragment_party_detail; 19 | } 20 | 21 | 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/fragment/ScheduleFragment.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.fragment; 2 | 3 | import android.support.v7.widget.LinearLayoutManager; 4 | import android.view.View; 5 | 6 | import com.android.framewok.base.ListBaseAdapter; 7 | import com.android.framewok.util.TLog; 8 | import com.xylife.community.adapter.ExerciseListAdapter; 9 | import com.xylife.community.api.APIWrapper; 10 | import com.xylife.community.base.BaseListFragment; 11 | import com.xylife.community.bean.Exercise; 12 | import com.xylife.community.bean.Response; 13 | 14 | import java.util.List; 15 | 16 | import rx.Observable; 17 | 18 | /** 19 | * Created by SK on 2016-05-30. 20 | * 21 | */ 22 | public class ScheduleFragment extends BaseListFragment> { 23 | 24 | 25 | @Override 26 | public void initView(View view) { 27 | super.initView(view); 28 | 29 | } 30 | 31 | @Override 32 | protected ListBaseAdapter getListAdapter() { 33 | return new ExerciseListAdapter(1); 34 | } 35 | 36 | @Override 37 | protected void initLayoutManager() { 38 | mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); 39 | } 40 | 41 | @Override 42 | public void initData() { 43 | super.initData(); 44 | } 45 | 46 | @Override 47 | protected Observable>> sendRequestData() { 48 | TLog.log("sendRequestData mCurrentPage = " + mCurrentPage); 49 | return APIWrapper.getInstance().queryLookUp("人才",mCurrentPage); 50 | } 51 | 52 | } 53 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/fragment/UserCenterFragment.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.fragment; 2 | 3 | 4 | import android.os.Bundle; 5 | import android.support.v7.widget.AppCompatTextView; 6 | import android.view.View; 7 | 8 | import com.android.framewok.base.BaseFragment; 9 | import com.android.framewok.widget.CircleImageView; 10 | import com.xylife.community.R; 11 | import com.xylife.community.ui.FeedbackActivity; 12 | import com.xylife.community.ui.UserInfoActivity; 13 | 14 | import butterknife.BindView; 15 | import butterknife.ButterKnife; 16 | 17 | public class UserCenterFragment extends BaseFragment { 18 | 19 | @BindView(R.id.my_info) 20 | AppCompatTextView myInfo; 21 | @BindView(R.id.avatar_image) 22 | CircleImageView avatarImg; 23 | @BindView(R.id.feedback) 24 | AppCompatTextView feedback; 25 | 26 | @Override 27 | protected int getLayoutId() { 28 | return R.layout.fragment_user_center; 29 | } 30 | 31 | @Override 32 | public void onViewCreated(View view, Bundle savedInstanceState) { 33 | super.onViewCreated(view, savedInstanceState); 34 | ButterKnife.bind(this, view); 35 | initView(view); 36 | initData(); 37 | } 38 | 39 | @Override 40 | public void initView(View view) { 41 | super.initView(view); 42 | avatarImg.setOnClickListener(this); 43 | myInfo.setOnClickListener(this); 44 | feedback.setOnClickListener(this); 45 | } 46 | 47 | @Override 48 | public void onClick(View view) { 49 | switch (view.getId()) { 50 | case R.id.avatar_image: 51 | gotoActivity(UserInfoActivity.class); 52 | break; 53 | case R.id.my_info: 54 | gotoActivity(UserInfoActivity.class); 55 | break; 56 | case R.id.feedback: 57 | gotoActivity(FeedbackActivity.class); 58 | break; 59 | default: 60 | break; 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/listener/OnRowClickListener.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.listener; 2 | 3 | import android.view.View; 4 | 5 | /** 6 | * Created by Twilight on 2015/1/25. 7 | */ 8 | public interface OnRowClickListener { 9 | void onRowClick(View view); 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/ui/ChargingPileActivity.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.ui; 2 | 3 | import com.xylife.community.R; 4 | import com.xylife.community.base.BaseActivity; 5 | 6 | /** 7 | * Created by SK on 2016-05-18. 8 | */ 9 | public class ChargingPileActivity extends BaseActivity { 10 | 11 | @Override 12 | protected int getLayoutId() { 13 | return R.layout.activity_charging_pile; 14 | } 15 | 16 | @Override 17 | public void initView() { 18 | mTitleText.setText(R.string.charging_pile); 19 | } 20 | 21 | @Override 22 | public void initData() { 23 | 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/ui/CommentActivity.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.ui; 2 | 3 | import com.xylife.community.R; 4 | import com.xylife.community.base.BaseActivity; 5 | 6 | /** 7 | * Created by SK on 2016-05-30. 8 | */ 9 | public class CommentActivity extends BaseActivity { 10 | 11 | @Override 12 | protected int getLayoutId() { 13 | return R.layout.activity_comment; 14 | } 15 | 16 | @Override 17 | public void initView() { 18 | mTitleText.setText(R.string.comment); 19 | } 20 | 21 | @Override 22 | public void initData() { 23 | 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/ui/FeedbackActivity.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.ui; 2 | 3 | import com.xylife.community.R; 4 | import com.xylife.community.base.BaseTextActivity; 5 | 6 | /** 7 | * Created by SK on 2016-06-01. 8 | */ 9 | 10 | public class FeedbackActivity extends BaseTextActivity { 11 | 12 | @Override 13 | protected int getLayoutId() { 14 | return R.layout.acitivity_feedback; 15 | } 16 | 17 | @Override 18 | public void initView() { 19 | mTitleText.setText(R.string.title_feedback); 20 | mRightText.setText(R.string.send); 21 | } 22 | 23 | @Override 24 | public void initData() { 25 | 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/ui/ForgetPwdActivity.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.ui; 2 | 3 | import android.view.View; 4 | import android.widget.Button; 5 | 6 | import com.xylife.community.R; 7 | import com.xylife.community.base.BaseActivity; 8 | import com.xylife.community.base.BaseTextActivity; 9 | import com.xylife.community.utils.FlipitAnimation; 10 | 11 | import butterknife.BindView; 12 | 13 | /** 14 | * Created by SK on 2016-05-17. 15 | */ 16 | public class ForgetPwdActivity extends BaseTextActivity { 17 | 18 | @BindView(R.id.next) 19 | Button next; 20 | @BindView(R.id.reset_pwd) 21 | Button resetPwd; 22 | @BindView(R.id.retrieve_pwd_layout) 23 | View retrievePwdLayout; 24 | @BindView(R.id.reset_pwd_layout) 25 | View resetPwdLayout; 26 | 27 | private FlipitAnimation flipitAnimation; 28 | 29 | @Override 30 | protected int getLayoutId() { 31 | return R.layout.activity_forget_pwd; 32 | } 33 | 34 | @Override 35 | public void initView() { 36 | mTitleText.setText(R.string.retrieve_pwd); 37 | mRightText.setText(R.string.register); 38 | 39 | next.setOnClickListener(this); 40 | resetPwd.setOnClickListener(this); 41 | mRightText.setOnClickListener(this); 42 | 43 | flipitAnimation = new FlipitAnimation(retrievePwdLayout, resetPwdLayout); 44 | } 45 | 46 | @Override 47 | public void initData() { 48 | 49 | } 50 | 51 | @Override 52 | public void onClick(View view) { 53 | super.onClick(view); 54 | switch (view.getId()) { 55 | case R.id.next: 56 | flipitAnimation.flipit(); 57 | break; 58 | case R.id.reset_pwd: 59 | flipitAnimation.flipit(); 60 | break; 61 | case R.id.right_text: 62 | gotoActivity(RegisterActivity.class); 63 | break; 64 | default: 65 | break; 66 | } 67 | } 68 | 69 | 70 | } 71 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/ui/FragmentDetailsActivity.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.ui; 2 | 3 | import android.os.Bundle; 4 | import android.support.v4.app.Fragment; 5 | import android.support.v4.app.FragmentManager; 6 | import android.support.v4.app.FragmentTransaction; 7 | 8 | import com.xylife.community.R; 9 | import com.xylife.community.base.BaseActivity; 10 | 11 | 12 | public class FragmentDetailsActivity extends BaseActivity { 13 | public static final int DISPLAY_NEWS = 0; 14 | public static final String BUNDLE_KEY_DISPLAY_TYPE = "BUNDLE_KEY_DISPLAY_TYPE"; 15 | 16 | @Override 17 | protected int getLayoutId() { 18 | return R.layout.activity_fragment_details; 19 | } 20 | 21 | @Override 22 | public void initView() { 23 | mTitleText.setText("操作统计"); 24 | } 25 | 26 | @Override 27 | public void initData() { 28 | 29 | Fragment fragment = null; 30 | Bundle bundle = getIntent().getExtras(); 31 | int displayType = bundle.getInt(BUNDLE_KEY_DISPLAY_TYPE, DISPLAY_NEWS); 32 | switch (displayType) { 33 | case DISPLAY_NEWS: 34 | fragment = new Fragment(); 35 | break; 36 | default: 37 | break; 38 | } 39 | 40 | FragmentManager manager = getSupportFragmentManager(); 41 | FragmentTransaction transaction = manager.beginTransaction(); 42 | transaction.add(R.id.fragment, fragment); 43 | transaction.commit(); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/ui/RegisterActivity.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.ui; 2 | 3 | import android.view.View; 4 | import android.widget.Button; 5 | 6 | import com.xylife.community.R; 7 | import com.xylife.community.base.BaseActivity; 8 | import com.xylife.community.utils.FlipitAnimation; 9 | 10 | import butterknife.BindView; 11 | 12 | /** 13 | * Created by SK on 2016-05-17. 14 | */ 15 | public class RegisterActivity extends BaseActivity { 16 | 17 | @BindView(R.id.input_phone_layout) 18 | View inputPhoneLayout; 19 | @BindView(R.id.input_code_layout) 20 | View inputCodeLayout; 21 | @BindView(R.id.next) 22 | Button next; 23 | @BindView(R.id.completed) 24 | Button completed; 25 | 26 | private FlipitAnimation flipitAnimation; 27 | 28 | @Override 29 | protected int getLayoutId() { 30 | return R.layout.activity_register; 31 | } 32 | 33 | @Override 34 | public void initView() { 35 | mTitleText.setText(R.string.register); 36 | 37 | next.setOnClickListener(this); 38 | completed.setOnClickListener(this); 39 | 40 | flipitAnimation = new FlipitAnimation(inputPhoneLayout, inputCodeLayout); 41 | } 42 | 43 | @Override 44 | public void initData() { 45 | 46 | } 47 | 48 | @Override 49 | public void onClick(View view) { 50 | super.onClick(view); 51 | switch (view.getId()) { 52 | case R.id.next: 53 | flipitAnimation.flipit(); 54 | break; 55 | case R.id.completed: 56 | flipitAnimation.flipit(); 57 | break; 58 | default: 59 | break; 60 | } 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/ui/SettingActivity.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.ui; 2 | 3 | import com.xylife.community.R; 4 | import com.xylife.community.base.BaseActivity; 5 | 6 | /** 7 | * Created by SK on 2016-05-17. 8 | */ 9 | public class SettingActivity extends BaseActivity { 10 | 11 | @Override 12 | protected int getLayoutId() { 13 | return R.layout.activity_setting; 14 | } 15 | 16 | @Override 17 | public void initView() { 18 | mTitleText.setText(R.string.setting); 19 | } 20 | 21 | @Override 22 | public void initData() { 23 | 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/ui/SignActivity.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.ui; 2 | 3 | import com.xylife.community.R; 4 | import com.xylife.community.base.BaseActivity; 5 | 6 | /** 7 | * Created by SK on 2016-05-27. 8 | */ 9 | public class SignActivity extends BaseActivity { 10 | 11 | 12 | @Override 13 | protected int getLayoutId() { 14 | return R.layout.activity_sign; 15 | } 16 | 17 | @Override 18 | public void initView() { 19 | 20 | 21 | } 22 | 23 | @Override 24 | public void initData() { 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/ui/UserInfoActivity.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.ui; 2 | 3 | import com.xylife.community.R; 4 | import com.xylife.community.base.BaseActivity; 5 | 6 | /** 7 | * Created by SK on 2016-05-27. 8 | */ 9 | public class UserInfoActivity extends BaseActivity { 10 | 11 | @Override 12 | protected int getLayoutId() { 13 | return R.layout.activity_user_info; 14 | } 15 | 16 | @Override 17 | public void initView() { 18 | mTitleText.setText("资料修改"); 19 | } 20 | 21 | @Override 22 | public void initData() { 23 | 24 | } 25 | 26 | 27 | } 28 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/utils/Bimp.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.utils; 2 | 3 | import java.io.BufferedInputStream; 4 | import java.io.File; 5 | import java.io.FileInputStream; 6 | import java.io.IOException; 7 | import java.util.ArrayList; 8 | import java.util.List; 9 | 10 | import android.graphics.Bitmap; 11 | import android.graphics.BitmapFactory; 12 | 13 | import com.xylife.community.bean.ImageItem; 14 | 15 | 16 | public class Bimp { 17 | public static int max = 0; 18 | 19 | public static ArrayList tempSelectBitmap = new ArrayList(); //选择的图片的临时列表 20 | 21 | public static Bitmap revitionImageSize(String path) throws IOException { 22 | BufferedInputStream in = new BufferedInputStream(new FileInputStream( 23 | new File(path))); 24 | BitmapFactory.Options options = new BitmapFactory.Options(); 25 | options.inJustDecodeBounds = true; 26 | BitmapFactory.decodeStream(in, null, options); 27 | in.close(); 28 | int i = 0; 29 | Bitmap bitmap = null; 30 | while (true) { 31 | if ((options.outWidth >> i <= 1000) 32 | && (options.outHeight >> i <= 1000)) { 33 | in = new BufferedInputStream( 34 | new FileInputStream(new File(path))); 35 | options.inSampleSize = (int) Math.pow(2.0D, i); 36 | options.inJustDecodeBounds = false; 37 | bitmap = BitmapFactory.decodeStream(in, null, options); 38 | break; 39 | } 40 | i += 1; 41 | } 42 | return bitmap; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/utils/Constant.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.utils; 2 | 3 | public class Constant { 4 | public static final int PAGE_SIZE = 10;// 默认分页大小 5 | public static final String OK = "1"; 6 | 7 | public static String BASEURL_IP = "http://ip.taobao.com"; //服务器地址 8 | public static String BASEURL="http://apis.baidu.com"; //服务器地址 9 | public static String APIKEY="7ff49d067102772f69d7b4f26c380287"; 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/utils/DoubleClickExitHelper.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.utils; 2 | 3 | 4 | import android.app.Activity; 5 | import android.os.Handler; 6 | import android.os.Looper; 7 | import android.support.design.widget.Snackbar; 8 | import android.view.KeyEvent; 9 | import android.view.View; 10 | 11 | import com.android.framewok.AppManager; 12 | 13 | /** 14 | * 双击退出工具类 15 | * 16 | * @author wxc 17 | */ 18 | public class DoubleClickExitHelper { 19 | 20 | private final Activity mActivity; 21 | 22 | private boolean isOnKeyBacking; 23 | private Handler mHandler; 24 | private Snackbar snackbar; 25 | 26 | public DoubleClickExitHelper(Activity activity) { 27 | mActivity = activity; 28 | mHandler = new Handler(Looper.getMainLooper()); 29 | AppManager.getAppManager().addActivity(mActivity); 30 | } 31 | 32 | /** 33 | * Activity onKeyDown事件 34 | */ 35 | public boolean onKeyDown(int keyCode, View view) { 36 | if (keyCode != KeyEvent.KEYCODE_BACK) { 37 | return false; 38 | } 39 | if (isOnKeyBacking) { 40 | mHandler.removeCallbacks(onBackTimeRunnable); 41 | if (snackbar != null) { 42 | snackbar.dismiss(); 43 | } 44 | AppManager.getAppManager().AppExit(mActivity); 45 | return true; 46 | } else { 47 | isOnKeyBacking = true; 48 | if (snackbar == null) { 49 | snackbar = Snackbar.make(view, "再次点击退出应用", Snackbar.LENGTH_SHORT); 50 | } 51 | snackbar.show(); 52 | mHandler.postDelayed(onBackTimeRunnable, 2000); 53 | return true; 54 | } 55 | } 56 | 57 | private Runnable onBackTimeRunnable = new Runnable() { 58 | @Override 59 | public void run() { 60 | isOnKeyBacking = false; 61 | if (snackbar != null) { 62 | snackbar.dismiss(); 63 | } 64 | } 65 | }; 66 | } 67 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/utils/FlipitAnimation.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.utils; 2 | 3 | import android.animation.Animator; 4 | import android.animation.AnimatorListenerAdapter; 5 | import android.animation.ObjectAnimator; 6 | import android.view.View; 7 | import android.view.animation.AccelerateInterpolator; 8 | import android.view.animation.DecelerateInterpolator; 9 | import android.view.animation.Interpolator; 10 | 11 | /** 12 | * Created by SK on 2016-05-17. 13 | */ 14 | public class FlipitAnimation { 15 | private Interpolator accelerator = new AccelerateInterpolator(); 16 | private Interpolator decelerator = new DecelerateInterpolator(); 17 | 18 | private View layout1, layout2; 19 | 20 | public FlipitAnimation(View layout1, View layout2) { 21 | this.layout1 = layout1; 22 | this.layout2 = layout2; 23 | } 24 | 25 | public void flipit() { 26 | final View visibleList; 27 | final View invisibleList; 28 | if (layout1.getVisibility() == View.GONE) { 29 | visibleList = layout2; 30 | invisibleList = layout1; 31 | } else { 32 | invisibleList = layout2; 33 | visibleList = layout1; 34 | } 35 | ObjectAnimator visToInvis = ObjectAnimator.ofFloat(visibleList, "rotationY", 0f, 90f); 36 | visToInvis.setDuration(500); 37 | visToInvis.setInterpolator(accelerator); 38 | final ObjectAnimator invisToVis = ObjectAnimator.ofFloat(invisibleList, "rotationY", -90f, 0f); 39 | invisToVis.setDuration(500); 40 | invisToVis.setInterpolator(decelerator); 41 | visToInvis.addListener(new AnimatorListenerAdapter() { 42 | @Override 43 | public void onAnimationEnd(Animator anim) { 44 | visibleList.setVisibility(View.GONE); 45 | invisToVis.start(); 46 | invisibleList.setVisibility(View.VISIBLE); 47 | } 48 | }); 49 | visToInvis.start(); 50 | } 51 | 52 | } 53 | -------------------------------------------------------------------------------- /app/src/main/java/com/xylife/community/utils/RowActionEnum.java: -------------------------------------------------------------------------------- 1 | package com.xylife.community.utils; 2 | 3 | /** 4 | * Created by Twilight on 2015/1/25. 5 | */ 6 | public enum RowActionEnum { 7 | action, POSTS 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/res/anim/anim_scale_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 12 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/anim/anim_scale_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 12 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/abs_list_selector_background_transition_holo_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/action_bar_item_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_product_default.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stay4it/Community/8ffc1508bc7c10475348d3ce0da6cde719abf5e1/app/src/main/res/drawable/ic_product_default.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/list_selector_holo_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/picker_photo_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 10 | 11 | 12 | 13 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/progressloading.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 26 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/selector_common_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/selector_common_corners_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/selector_green_corners_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_common_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_common_button_pressed.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_common_corners_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_common_corners_button_pressed.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_green_corners_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_green_corners_button_pressed.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_orange_corners_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/widget_general_row_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/layout/acitivity_feedback.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_charging_pile.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 11 | 12 | 15 | 16 | 21 | 22 |