├── .gradle ├── 5.1.1 │ ├── executionHistory │ │ ├── executionHistory.bin │ │ └── executionHistory.lock │ ├── fileChanges │ │ └── last-build.bin │ ├── fileContent │ │ └── fileContent.lock │ ├── fileHashes │ │ ├── fileHashes.bin │ │ ├── fileHashes.lock │ │ └── resourceHashesCache.bin │ ├── gc.properties │ └── javaCompile │ │ ├── classAnalysis.bin │ │ ├── jarAnalysis.bin │ │ ├── javaCompile.lock │ │ └── taskHistory.bin ├── buildOutputCleanup │ ├── buildOutputCleanup.lock │ ├── cache.properties │ └── outputFiles.bin └── vcs-1 │ └── gc.properties ├── .idea ├── caches │ ├── build_file_checksums.ser │ └── gradle_models.ser ├── codeStyles │ └── Project.xml ├── gradle.xml ├── libraries │ ├── Gradle____local_aars___D__Google_android_money_RefuseSortingSmall_master_app_libs_bdasr_V3_20190515_c9eed5d_jar_unspecified_jar.xml │ ├── Gradle__android_arch_core_common_1_1_1_jar.xml │ ├── Gradle__android_arch_core_runtime_1_1_1_aar.xml │ ├── Gradle__android_arch_lifecycle_common_1_1_1_jar.xml │ ├── Gradle__android_arch_lifecycle_livedata_1_1_1_aar.xml │ ├── Gradle__android_arch_lifecycle_livedata_core_1_1_1_aar.xml │ ├── Gradle__android_arch_lifecycle_runtime_1_1_1_aar.xml │ ├── Gradle__android_arch_lifecycle_viewmodel_1_1_1_aar.xml │ ├── Gradle__com_afollestad_material_dialogs_commons_0_9_6_0_aar.xml │ ├── Gradle__com_afollestad_material_dialogs_core_0_9_6_0_aar.xml │ ├── Gradle__com_airbnb_android_lottie_2_5_4_aar.xml │ ├── Gradle__com_android_support_animated_vector_drawable_28_0_0_aar.xml │ ├── Gradle__com_android_support_appcompat_v7_28_0_0_aar.xml │ ├── Gradle__com_android_support_asynclayoutinflater_28_0_0_aar.xml │ ├── Gradle__com_android_support_cardview_v7_28_0_0_aar.xml │ ├── Gradle__com_android_support_collections_28_0_0_jar.xml │ ├── Gradle__com_android_support_constraint_constraint_layout_1_1_3_aar.xml │ ├── Gradle__com_android_support_constraint_constraint_layout_solver_1_1_3_jar.xml │ ├── Gradle__com_android_support_coordinatorlayout_28_0_0_aar.xml │ ├── Gradle__com_android_support_cursoradapter_28_0_0_aar.xml │ ├── Gradle__com_android_support_customview_28_0_0_aar.xml │ ├── Gradle__com_android_support_design_28_0_0_aar.xml │ ├── Gradle__com_android_support_documentfile_28_0_0_aar.xml │ ├── Gradle__com_android_support_drawerlayout_28_0_0_aar.xml │ ├── Gradle__com_android_support_interpolator_28_0_0_aar.xml │ ├── Gradle__com_android_support_loader_28_0_0_aar.xml │ ├── Gradle__com_android_support_localbroadcastmanager_28_0_0_aar.xml │ ├── Gradle__com_android_support_multidex_1_0_3_aar.xml │ ├── Gradle__com_android_support_multidex_instrumentation_1_0_2_aar.xml │ ├── Gradle__com_android_support_print_28_0_0_aar.xml │ ├── Gradle__com_android_support_recyclerview_v7_28_0_0_aar.xml │ ├── Gradle__com_android_support_slidingpanelayout_28_0_0_aar.xml │ ├── Gradle__com_android_support_support_annotations_28_0_0_jar.xml │ ├── Gradle__com_android_support_support_compat_28_0_0_aar.xml │ ├── Gradle__com_android_support_support_core_ui_28_0_0_aar.xml │ ├── Gradle__com_android_support_support_core_utils_28_0_0_aar.xml │ ├── Gradle__com_android_support_support_fragment_28_0_0_aar.xml │ ├── Gradle__com_android_support_support_vector_drawable_28_0_0_aar.xml │ ├── Gradle__com_android_support_swiperefreshlayout_28_0_0_aar.xml │ ├── Gradle__com_android_support_test_espresso_espresso_core_3_0_2_aar.xml │ ├── Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_2_aar.xml │ ├── Gradle__com_android_support_test_monitor_1_0_2_aar.xml │ ├── Gradle__com_android_support_test_runner_1_0_2_aar.xml │ ├── Gradle__com_android_support_transition_28_0_0_aar.xml │ ├── Gradle__com_android_support_versionedparcelable_28_0_0_aar.xml │ ├── Gradle__com_android_support_viewpager_28_0_0_aar.xml │ ├── Gradle__com_blankj_utilcode_1_23_7_aar.xml │ ├── Gradle__com_github_CymChad_BaseRecyclerViewAdapterHelper_2_9_42_aar.xml │ ├── Gradle__com_github_LuckSiege_PictureSelector_picture_library_v2_2_3_aar.xml │ ├── Gradle__com_github_LuckSiege_PictureSelector_ucrop_v2_2_3_aar.xml │ ├── Gradle__com_github_VictorAlbertos_RxActivityResult_0_4_5_2_x_aar.xml │ ├── Gradle__com_github_bumptech_glide_annotations_4_5_0_jar.xml │ ├── Gradle__com_github_bumptech_glide_disklrucache_4_5_0_jar.xml │ ├── Gradle__com_github_bumptech_glide_gifdecoder_4_5_0_aar.xml │ ├── Gradle__com_github_bumptech_glide_glide_4_5_0_aar.xml │ ├── Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml │ ├── Gradle__com_google_code_gson_gson_2_8_2_jar.xml │ ├── Gradle__com_jaeger_statusbarutil_library_1_5_1_aar.xml │ ├── Gradle__com_liulishuo_filedownloader_library_1_7_6_aar.xml │ ├── Gradle__com_squareup_javawriter_2_1_1_jar.xml │ ├── Gradle__com_squareup_okhttp3_okhttp_3_10_0_jar.xml │ ├── Gradle__com_squareup_okio_okio_1_14_0_jar.xml │ ├── Gradle__com_squareup_retrofit2_adapter_rxjava2_2_4_0_jar.xml │ ├── Gradle__com_squareup_retrofit2_converter_gson_2_4_0_jar.xml │ ├── Gradle__com_squareup_retrofit2_retrofit_2_4_0_jar.xml │ ├── Gradle__com_trello_rxlifecycle2_rxlifecycle_2_2_1_jar.xml │ ├── Gradle__com_trello_rxlifecycle2_rxlifecycle_android_2_2_1_aar.xml │ ├── Gradle__com_umeng_umsdk_analytics_7_5_4_jar.xml │ ├── Gradle__com_umeng_umsdk_common_1_5_4_jar.xml │ ├── Gradle__io_reactivex_rxjava2_rxandroid_2_0_2_aar.xml │ ├── Gradle__io_reactivex_rxjava2_rxjava_2_1_9_jar.xml │ ├── Gradle__javax_inject_javax_inject_1_jar.xml │ ├── Gradle__junit_junit_4_12_jar.xml │ ├── Gradle__me_zhanghai_android_materialprogressbar_library_1_4_2_aar.xml │ ├── Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml │ ├── Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml │ ├── Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml │ ├── Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml │ ├── Gradle__org_jsoup_jsoup_1_11_3_jar.xml │ └── Gradle__org_reactivestreams_reactive_streams_1_0_2_jar.xml ├── misc.xml ├── modules.xml ├── runConfigurations.xml └── vcs.xml ├── Images ├── a.png └── b.png ├── README.md ├── RefuseSortingSmall-master.iml ├── RefuseSortingSmall.iml ├── app ├── app.iml ├── build.gradle ├── libs │ └── bdasr_V3_20190515_c9eed5d.jar ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── tool │ │ └── rss │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── assets │ │ ├── 1288-settings.json │ │ ├── bg_home.json │ │ ├── loading_animat.json │ │ ├── loading_web.json │ │ ├── record-spin.json │ │ ├── voice-recognition.json │ │ └── wave-loading.json │ ├── java │ │ └── com │ │ │ └── tool │ │ │ └── rss │ │ │ ├── RkApplication.java │ │ │ ├── annotation │ │ │ └── ActivityOption.java │ │ │ ├── base │ │ │ ├── BaseActivity.java │ │ │ ├── BaseApplication.java │ │ │ ├── BaseBroadcastReceiver.java │ │ │ ├── BaseFragment.java │ │ │ ├── BaseJackActivity.java │ │ │ ├── BaseJackFragment.java │ │ │ ├── BaseView.java │ │ │ └── PermissionListener.java │ │ │ ├── constant │ │ │ └── UserConstant.java │ │ │ ├── receiver │ │ │ └── NetWorkStateReceiver.java │ │ │ ├── ui │ │ │ ├── NetWork │ │ │ │ ├── AppManager.java │ │ │ │ ├── HttpResult.java │ │ │ │ ├── JKX_API.java │ │ │ │ ├── JKX_HttpCommonInterceptor.java │ │ │ │ ├── JKX_Interface.java │ │ │ │ ├── JackHeaderUtil.java │ │ │ │ ├── LoggerInterceptor.java │ │ │ │ ├── OrcLoadUtils.java │ │ │ │ ├── RequestModel │ │ │ │ │ └── UpLoadOrderInfoV2Request.java │ │ │ │ ├── error │ │ │ │ │ ├── LenientGsonConverterFactory.java │ │ │ │ │ └── TrustAllTrustManager.java │ │ │ │ └── tx │ │ │ │ │ └── HttpUtil.java │ │ │ ├── activity │ │ │ │ ├── AppInfoActivity.java │ │ │ │ ├── HomeActivity.java │ │ │ │ ├── MainActivity.java │ │ │ │ ├── RefuseDetailActivity.java │ │ │ │ ├── SettingActivity.java │ │ │ │ └── WelcomeActivity.java │ │ │ ├── adapter │ │ │ │ ├── HomeAdapter.java │ │ │ │ ├── HomeDetailAdapter.java │ │ │ │ ├── HomeDetailContentAdapter.java │ │ │ │ ├── HomeTipsAdapter.java │ │ │ │ └── HomeTypeAdapter.java │ │ │ ├── bdAudio │ │ │ │ └── RecogResult.java │ │ │ ├── dialog │ │ │ │ ├── IosPopupDialog.java │ │ │ │ ├── LoadingDialog.java │ │ │ │ └── PopupDialog.java │ │ │ ├── fragment │ │ │ │ ├── ClassFragment.java │ │ │ │ └── HomeFragment.java │ │ │ ├── model │ │ │ │ ├── DetailAllEntity.java │ │ │ │ ├── HotSearchEntity.java │ │ │ │ ├── ItemEntity.java │ │ │ │ ├── TrashResultEntity.java │ │ │ │ ├── TxLoadEntity.java │ │ │ │ ├── TxSignatureEntity.java │ │ │ │ └── VersionEntity.java │ │ │ ├── swipe │ │ │ │ └── SwipePanel.java │ │ │ └── widget │ │ │ │ ├── ShadowLayoutTwo.java │ │ │ │ ├── TopSnackBar │ │ │ │ ├── AnimationUtils.java │ │ │ │ ├── Prompt.java │ │ │ │ ├── ScreenUtil.java │ │ │ │ ├── SnackbarManager.java │ │ │ │ ├── TSnackbar.java │ │ │ │ └── TSnackbarBig.java │ │ │ │ ├── status │ │ │ │ ├── AbstractStatus.java │ │ │ │ ├── LoadAbstract.java │ │ │ │ └── StatusLayout.java │ │ │ │ └── view │ │ │ │ ├── LastInputEditText.java │ │ │ │ ├── NoScrollViewPager.java │ │ │ │ └── TabIndicator.java │ │ │ └── utils │ │ │ ├── EmptyUtils.java │ │ │ ├── ExceptionUtil.java │ │ │ ├── HomeDataUtils.java │ │ │ ├── ImageUtil.java │ │ │ ├── JsonUtil.java │ │ │ ├── ResUtils.java │ │ │ ├── RxCountDown.java │ │ │ ├── status │ │ │ └── BarTextColorUtils.java │ │ │ ├── txsign │ │ │ ├── Base64Util.java │ │ │ ├── FileUtil.java │ │ │ ├── MD5.java │ │ │ ├── TencentAISign.java │ │ │ ├── TencentAISignSort.java │ │ │ ├── TencentAPI.java │ │ │ ├── TransConstant.java │ │ │ ├── TxSignBase64Utils.java │ │ │ └── TxSignUtils.java │ │ │ └── update │ │ │ └── AppUpdateUtils.java │ ├── jniLibs │ │ ├── arm64-v8a │ │ │ ├── libBaiduSpeechSDK.so │ │ │ ├── libbdEASRAndroid.so │ │ │ ├── libbdSpilWakeup.so │ │ │ ├── libbd_easr_s1_merge_normal_20151216.dat.so │ │ │ └── libvad.dnn.so │ │ ├── armeabi-v7a │ │ │ ├── libBaiduSpeechSDK.so │ │ │ ├── libbdEASRAndroid.so │ │ │ ├── libbdSpilWakeup.so │ │ │ ├── libbd_easr_s1_merge_normal_20151216.dat.so │ │ │ └── libvad.dnn.so │ │ ├── armeabi │ │ │ ├── libBaiduSpeechSDK.so │ │ │ ├── libbdEASRAndroid.so │ │ │ ├── libbdSpilWakeup.so │ │ │ ├── libbd_easr_s1_merge_normal_20151216.dat.so │ │ │ └── libvad.dnn.so │ │ ├── x86 │ │ │ ├── libBaiduSpeechSDK.so │ │ │ ├── libbdEASRAndroid.so │ │ │ ├── libbdSpilWakeup.so │ │ │ ├── libbd_easr_s1_merge_normal_20151216.dat.so │ │ │ └── libvad.dnn.so │ │ └── x86_64 │ │ │ ├── libBaiduSpeechSDK.so │ │ │ ├── libbdEASRAndroid.so │ │ │ ├── libbdSpilWakeup.so │ │ │ ├── libbd_easr_s1_merge_normal_20151216.dat.so │ │ │ └── libvad.dnn.so │ └── res │ │ ├── anim │ │ ├── anim_slide_in_from_bottom.xml │ │ ├── anim_slide_out_to_bottom.xml │ │ ├── slide_in_left.xml │ │ ├── slide_in_right.xml │ │ ├── slide_out_left.xml │ │ ├── slide_out_right.xml │ │ ├── top_in.xml │ │ └── top_out.xml │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ ├── anim_rotate_loading.xml │ │ ├── base_back.png │ │ ├── bg_home.xml │ │ ├── bg_home_detail.xml │ │ ├── bg_home_white10.xml │ │ ├── bg_home_white25.xml │ │ ├── bg_round_red.xml │ │ ├── home_edit_cursor.xml │ │ ├── ic_launcher_background.xml │ │ ├── ic_search_black_24dp.xml │ │ ├── icon_loading_default.png │ │ ├── ios_popup_dialog_bg.9.png │ │ ├── ios_popup_dialog_btn_left_pressed.9.png │ │ ├── ios_popup_dialog_btn_right_pressed.9.png │ │ ├── ios_popup_dialog_divider.xml │ │ ├── ios_popup_dialog_left_selector.xml │ │ ├── ios_popup_dialog_right_selector.xml │ │ ├── ios_popup_dialog_trans_bg.png │ │ ├── rotate.xml │ │ ├── selector_btn_bg_white.xml │ │ ├── selector_tv_gary_666.xml │ │ ├── selector_tv_orange.xml │ │ ├── shape_bggrey_roundcorner.xml │ │ ├── shape_divider.xml │ │ ├── shape_round_rec_light_gary_btn_bg.xml │ │ ├── shape_round_rec_orage_btn_bg.xml │ │ └── shape_round_voice.xml │ │ ├── layout │ │ ├── activity_app_info.xml │ │ ├── activity_home.xml │ │ ├── activity_main.xml │ │ ├── activity_refuse_detail.xml │ │ ├── activity_setting.xml │ │ ├── activity_welcome.xml │ │ ├── adapter_detaill_content.xml │ │ ├── adapter_home.xml │ │ ├── adapter_home_detail.xml │ │ ├── adapter_home_type.xml │ │ ├── adapter_tips.xml │ │ ├── fragment_class.xml │ │ ├── fragment_home.xml │ │ ├── ios_popup_dialog_view_alertdialog.xml │ │ ├── item_homedetail_header.xml │ │ ├── item_homeresult_header.xml │ │ ├── item_main_view_pager.xml │ │ ├── item_status_loading.xml │ │ ├── item_update_progress_dialog.xml │ │ ├── loading_dialog.xml │ │ ├── tab_indicator.xml │ │ ├── view_bsnackbar_big_layout.xml │ │ ├── view_bsnackbar_layout.xml │ │ ├── view_tsnackbar_big_layout.xml │ │ ├── view_tsnackbar_layout.xml │ │ └── view_tsnackbar_layout_include.xml │ │ ├── mipmap-anydpi-v26 │ │ └── ic_launcher.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── common_bounced_icon_error.png │ │ ├── common_bounced_icon_successful.png │ │ ├── common_bounced_icon_warning.png │ │ ├── ic_launcher.png │ │ ├── ic_launcher_round.png │ │ ├── ic_user_back.png │ │ ├── icon_close.png │ │ ├── icon_detail_g.png │ │ ├── icon_detail_k.png │ │ ├── icon_detail_s.png │ │ ├── icon_detail_y.png │ │ ├── icon_down_sound.png │ │ ├── icon_g.png │ │ ├── icon_home_header_del.png │ │ ├── icon_k.png │ │ ├── icon_photo.png │ │ ├── icon_s.png │ │ ├── icon_search.png │ │ ├── icon_search_camera.png │ │ ├── icon_tag.png │ │ ├── icon_voice_home.png │ │ └── icon_y.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_banner_bottom.png │ │ ├── ic_launcher.png │ │ ├── ic_launcher_round.png │ │ ├── icon_ax.png │ │ └── icon_new_back.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_round.png │ │ ├── test_test.jpg │ │ └── test_test1.jpg │ │ ├── values-v19 │ │ └── styles.xml │ │ ├── values │ │ ├── attrs.xml │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ │ └── xml │ │ ├── file_paths.xml │ │ └── network_security_config.xml │ └── test │ └── java │ └── com │ └── tool │ └── rss │ └── ExampleUnitTest.java ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── local.properties ├── master └── settings.gradle /.gradle/5.1.1/executionHistory/executionHistory.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/.gradle/5.1.1/executionHistory/executionHistory.bin -------------------------------------------------------------------------------- /.gradle/5.1.1/executionHistory/executionHistory.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/.gradle/5.1.1/executionHistory/executionHistory.lock -------------------------------------------------------------------------------- /.gradle/5.1.1/fileChanges/last-build.bin: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gradle/5.1.1/fileContent/fileContent.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/.gradle/5.1.1/fileContent/fileContent.lock -------------------------------------------------------------------------------- /.gradle/5.1.1/fileHashes/fileHashes.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/.gradle/5.1.1/fileHashes/fileHashes.bin -------------------------------------------------------------------------------- /.gradle/5.1.1/fileHashes/fileHashes.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/.gradle/5.1.1/fileHashes/fileHashes.lock -------------------------------------------------------------------------------- /.gradle/5.1.1/fileHashes/resourceHashesCache.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/.gradle/5.1.1/fileHashes/resourceHashesCache.bin -------------------------------------------------------------------------------- /.gradle/5.1.1/gc.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/.gradle/5.1.1/gc.properties -------------------------------------------------------------------------------- /.gradle/5.1.1/javaCompile/classAnalysis.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/.gradle/5.1.1/javaCompile/classAnalysis.bin -------------------------------------------------------------------------------- /.gradle/5.1.1/javaCompile/jarAnalysis.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/.gradle/5.1.1/javaCompile/jarAnalysis.bin -------------------------------------------------------------------------------- /.gradle/5.1.1/javaCompile/javaCompile.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/.gradle/5.1.1/javaCompile/javaCompile.lock -------------------------------------------------------------------------------- /.gradle/5.1.1/javaCompile/taskHistory.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/.gradle/5.1.1/javaCompile/taskHistory.bin -------------------------------------------------------------------------------- /.gradle/buildOutputCleanup/buildOutputCleanup.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/.gradle/buildOutputCleanup/buildOutputCleanup.lock -------------------------------------------------------------------------------- /.gradle/buildOutputCleanup/cache.properties: -------------------------------------------------------------------------------- 1 | #Tue Jul 02 09:25:34 CST 2019 2 | gradle.version=5.1.1 3 | -------------------------------------------------------------------------------- /.gradle/buildOutputCleanup/outputFiles.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/.gradle/buildOutputCleanup/outputFiles.bin -------------------------------------------------------------------------------- /.gradle/vcs-1/gc.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/.gradle/vcs-1/gc.properties -------------------------------------------------------------------------------- /.idea/caches/build_file_checksums.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/.idea/caches/build_file_checksums.ser -------------------------------------------------------------------------------- /.idea/caches/gradle_models.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/.idea/caches/gradle_models.ser -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 15 | 16 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle____local_aars___D__Google_android_money_RefuseSortingSmall_master_app_libs_bdasr_V3_20190515_c9eed5d_jar_unspecified_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__android_arch_core_common_1_1_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__android_arch_core_runtime_1_1_1_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_afollestad_material_dialogs_commons_0_9_6_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_afollestad_material_dialogs_core_0_9_6_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_airbnb_android_lottie_2_5_4_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_cardview_v7_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_collections_28_0_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_1_3_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_solver_1_1_3_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_customview_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_design_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_documentfile_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_interpolator_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_loader_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_multidex_1_0_3_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_multidex_instrumentation_1_0_2_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_print_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_recyclerview_v7_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_support_annotations_28_0_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_support_compat_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_3_0_2_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_2_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_test_monitor_1_0_2_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_test_runner_1_0_2_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_transition_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_android_support_viewpager_28_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_blankj_utilcode_1_23_7_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_github_CymChad_BaseRecyclerViewAdapterHelper_2_9_42_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_github_LuckSiege_PictureSelector_picture_library_v2_2_3_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_github_LuckSiege_PictureSelector_ucrop_v2_2_3_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_github_VictorAlbertos_RxActivityResult_0_4_5_2_x_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_github_bumptech_glide_annotations_4_5_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_github_bumptech_glide_disklrucache_4_5_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_github_bumptech_glide_gifdecoder_4_5_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_github_bumptech_glide_glide_4_5_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_google_code_gson_gson_2_8_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_jaeger_statusbarutil_library_1_5_1_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_liulishuo_filedownloader_library_1_7_6_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_10_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_squareup_okio_okio_1_14_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_squareup_retrofit2_adapter_rxjava2_2_4_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_squareup_retrofit2_converter_gson_2_4_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_squareup_retrofit2_retrofit_2_4_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_trello_rxlifecycle2_rxlifecycle_2_2_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_trello_rxlifecycle2_rxlifecycle_android_2_2_1_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_umeng_umsdk_analytics_7_5_4_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_umeng_umsdk_common_1_5_4_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__io_reactivex_rxjava2_rxandroid_2_0_2_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__io_reactivex_rxjava2_rxjava_2_1_9_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__junit_junit_4_12_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__me_zhanghai_android_materialprogressbar_library_1_4_2_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__org_jsoup_jsoup_1_11_3_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__org_reactivestreams_reactive_streams_1_0_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 14 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Images/a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/Images/a.png -------------------------------------------------------------------------------- /Images/b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/Images/b.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GarbageSorting 2 | 图片识别、语音识别、垃圾分类 3 | 4 | 一个完整的垃圾分类的app 5 | 6 | 7 | ![image](https://github.com/hyyz3293/GarbageSorting/blob/master/Images/a.png) ![image](https://github.com/hyyz3293/GarbageSorting/blob/master/Images/b.png) 8 | -------------------------------------------------------------------------------- /RefuseSortingSmall-master.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /RefuseSortingSmall.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /app/libs/bdasr_V3_20190515_c9eed5d.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/libs/bdasr_V3_20190515_c9eed5d.jar -------------------------------------------------------------------------------- /app/src/androidTest/java/com/tool/rss/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss; 2 | 3 | import android.content.Context; 4 | import android.support.test.InstrumentationRegistry; 5 | import android.support.test.runner.AndroidJUnit4; 6 | 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import static org.junit.Assert.*; 11 | 12 | /** 13 | * Instrumented test, which will execute on an Android device. 14 | * 15 | * @see Testing documentation 16 | */ 17 | @RunWith(AndroidJUnit4.class) 18 | public class ExampleInstrumentedTest { 19 | @Test 20 | public void useAppContext() { 21 | // Context of the app under test. 22 | Context appContext = InstrumentationRegistry.getTargetContext(); 23 | 24 | assertEquals("com.tool.rss", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/RkApplication.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss; 2 | 3 | import com.liulishuo.filedownloader.FileDownloader; 4 | import com.tool.rss.base.BaseApplication; 5 | import com.umeng.analytics.MobclickAgent; 6 | import com.umeng.commonsdk.UMConfigure; 7 | 8 | public class RkApplication extends BaseApplication { 9 | 10 | @Override 11 | public void onCreate() { 12 | super.onCreate(); 13 | 14 | //友盟相关 15 | UMConfigure.init(this, UMConfigure.DEVICE_TYPE_PHONE, "5d1d7566570df3611f000f56"); 16 | MobclickAgent.setCatchUncaughtExceptions(true); 17 | MobclickAgent.onResume(this); 18 | 19 | //文件下载器 20 | FileDownloader.setupOnApplicationOnCreate(this); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/annotation/ActivityOption.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.annotation; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | /** 10 | * Activity选项的注解 11 | * 12 | * @author mos 13 | * @date 2017.02.22 14 | * @note - 15 | * ------------------------------------------------------------------------------------------------- 16 | * @modified - 17 | * @date - 18 | * @note - 19 | */ 20 | @Documented 21 | @Retention(RetentionPolicy.RUNTIME) 22 | @Target(ElementType.TYPE) 23 | public @interface ActivityOption { 24 | /** 25 | * 是否需要登录 26 | * 27 | * @return true -- 是 false -- 否 28 | */ 29 | boolean reqLogin() default false; 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/base/BaseBroadcastReceiver.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.base; 2 | 3 | import android.content.BroadcastReceiver; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | 7 | /** 8 | * BroadcastReceiver基类 9 | * 10 | * @author mos 11 | * @date 2017.01.23 12 | * @note 1. 项目中所有子类必须继承自此基类 13 | * ------------------------------------------------------------------------------------------------- 14 | * @modified - 15 | * @date - 16 | * @note - 17 | */ 18 | public abstract class BaseBroadcastReceiver extends BroadcastReceiver { 19 | 20 | @Override 21 | public void onReceive(Context context, Intent intent) { 22 | onReceive(context, intent, 0); 23 | } 24 | 25 | /** 26 | * onReceive回调 27 | * 28 | * @param context 参考回调文档说明 29 | * @param intent 参考回调文档说明 30 | * @param flag 标志(暂未使用) 31 | */ 32 | public abstract void onReceive(Context context, Intent intent, int flag); 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/base/BaseJackFragment.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.base; 2 | 3 | import android.os.Bundle; 4 | import android.view.LayoutInflater; 5 | import android.view.View; 6 | import android.view.ViewGroup; 7 | import android.support.annotation.Nullable; 8 | /** 9 | * Fragment基类 10 | * 11 | * @author jack 12 | * @date 2018.05.17 13 | * @note - 14 | * ------------------------------------------------------------------------------------------------- 15 | * @modified - 16 | * @date - 17 | * @note - 18 | */ 19 | public abstract class BaseJackFragment extends BaseFragment { 20 | /** 根布局 */ 21 | private View mView; 22 | 23 | @Override 24 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 25 | super.onCreateView(inflater, container, savedInstanceState); 26 | mView = inflater.inflate(getContentView(), container, false); 27 | initView(mView); 28 | initListener(); 29 | initData(); 30 | return mView; 31 | } 32 | 33 | @Override 34 | public void onDestroyView() { 35 | super.onDestroyView(); 36 | } 37 | 38 | /** 39 | * 获得根布局 40 | * 41 | * @return View 根布局 42 | */ 43 | @Override 44 | public View getView() { 45 | return mView; 46 | } 47 | 48 | /** 49 | * 设置ContentView的ResId 50 | * 51 | * @return ContentView的ResId 52 | */ 53 | public abstract int getContentView(); 54 | 55 | /** 56 | * 初始化布局 57 | * 58 | * @param rootView 根布局 59 | */ 60 | public abstract void initView(View rootView); 61 | 62 | public void initData() { 63 | 64 | } 65 | 66 | public void initListener() { 67 | 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/base/PermissionListener.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.base; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * @author jack 7 | * @description: 权限申请回调的接口 8 | */ 9 | public interface PermissionListener { 10 | 11 | void onGranted(); 12 | 13 | void onDenied(List deniedPermissions); 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/constant/UserConstant.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.constant; 2 | 3 | public class UserConstant { 4 | public static final String BAIDU_START = "{\"accept-audio-data\":false,\"disable-punctuation\":false,\"accept-audio-volume\":true,\"pid\":1736}"; 5 | 6 | //其他垃圾 7 | public String[] DryGarbage = new String[] { 8 | "餐盒", "餐巾纸", "湿纸巾", "卫生间用纸", "塑料袋", 9 | "食品包装袋", "污染严重的纸", "烟蒂", "纸尿裤", "一次性杯子", 10 | "大骨头", "贝壳", "花盆" 11 | }; 12 | //易腐垃圾 13 | public String[] WetGarbage = new String[] { 14 | "食材废料", "剩饭剩菜", "过期食品", "蔬菜水果", "瓜皮果核", 15 | "花卉绿植", "中药残渣" 16 | }; 17 | //可回收垃圾 18 | public String[] RecyclableGarbage = new String[] { 19 | "报纸", "纸箱", "书本", "广告单", "塑料瓶", 20 | "塑料玩具", "油桶", "酒瓶", "玻璃杯", "易拉罐", 21 | "旧铁锅", "旧衣服", "包", "旧玩偶", "旧数码产品", 22 | "旧家电" 23 | }; 24 | //有害垃圾 25 | public String[] HazardousWaste = new String[] { 26 | "废电池(充电电池、铅酸电池、镍镉电池、纽扣电池等)", "废油漆", "消毒剂", "荧光灯管", "含汞温度计", 27 | "废药品及其包装物" 28 | }; 29 | } 30 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/receiver/NetWorkStateReceiver.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.receiver; 2 | 3 | 4 | import android.content.Context; 5 | import android.content.Intent; 6 | import android.net.ConnectivityManager; 7 | import android.net.NetworkInfo; 8 | 9 | import com.blankj.utilcode.util.Utils; 10 | import com.tool.rss.base.BaseBroadcastReceiver; 11 | 12 | /** 13 | *

网络请求状态广播


14 | * 15 | * @author - lwc 16 | * @date - 2017/5/31 17 | * @note - 18 | * ------------------------------------------------------------------------------------------------- 19 | * @modified - 20 | * @date - 21 | * @note - 22 | */ 23 | public class NetWorkStateReceiver extends BaseBroadcastReceiver { 24 | 25 | @Override 26 | public void onReceive(Context context, Intent intent, int flag) { 27 | if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction())) { 28 | // 发送网络改变事件 29 | ConnectivityManager manager = (ConnectivityManager) Utils.getApp().getSystemService(Context.CONNECTIVITY_SERVICE); 30 | //没有网络链接的时候 activeNetwork=null 31 | NetworkInfo activeNetwork = manager.getActiveNetworkInfo(); 32 | if (activeNetwork == null){ 33 | // ToastUtils.showShortToast("没有网络"); 34 | }else { 35 | // ToastUtils.showShortToast("有网络"); 36 | } 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/NetWork/AppManager.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.NetWork; 2 | 3 | import android.text.TextUtils; 4 | 5 | import java.util.UUID; 6 | 7 | /** 8 | * JKX2018 9 | * Created by xyrzx on 2018/5/8. 10 | */ 11 | public class AppManager { 12 | private static volatile AppManager instance; 13 | private String skey = ""; 14 | private String fakeIMEI = ""; 15 | private String channelId = ""; 16 | 17 | public static synchronized AppManager getInstance() { 18 | if (instance == null) { 19 | instance = new AppManager(); 20 | } 21 | return instance; 22 | } 23 | 24 | private AppManager() { 25 | //loadData(); 26 | } 27 | 28 | 29 | /* 判断登录状态 */ 30 | public boolean isLogin() { 31 | return !TextUtils.isEmpty(skey); 32 | } 33 | 34 | /* 获取skey */ 35 | public String getSkey() { 36 | return skey; 37 | } 38 | 39 | /* 设置skey */ 40 | public void login(String skey) { 41 | this.skey = skey; 42 | //SharedPreferencesHelper.put("skey", skey); 43 | } 44 | 45 | /* 获取channelId */ 46 | public String getChannelId() { 47 | //channelId = SharedPreferencesHelper.get("ChannelId","0").toString(); 48 | return channelId; 49 | } 50 | 51 | /* 设置channelId */ 52 | public void ChannelId(String channelId) { 53 | this.channelId = channelId; 54 | //SharedPreferencesHelper.put("ChannelId", channelId); 55 | } 56 | 57 | /* 获取UUID唯一识别码 */ 58 | public String getFakeIMEI() { 59 | if (TextUtils.isEmpty(fakeIMEI)) { 60 | fakeIMEI = UUID.randomUUID().toString().replace("-", ""); 61 | //SharedPreferencesHelper.put("fakeIMEI", fakeIMEI); 62 | } 63 | return fakeIMEI; 64 | } 65 | 66 | /*获取请求地址*/ 67 | public String getHost() { 68 | return "https://www.easy-mock.com/mock/5d1f129e68117d4c69ec494d/trashclass/"; 69 | } 70 | 71 | 72 | 73 | 74 | } 75 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/NetWork/HttpResult.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.NetWork; 2 | 3 | 4 | /** 5 | * JKX2018 6 | * Created by xyrzx on 2018/5/7. 7 | */ 8 | public class HttpResult { 9 | 10 | private int code; 11 | private String msg; 12 | private String stime; 13 | 14 | //业务关注的Data 15 | private T data; 16 | 17 | private T list; 18 | 19 | public int getCode() { 20 | 21 | if (code == -1){ 22 | //AppManager.getInstance().mainLoginOut(); 23 | } 24 | 25 | return code; 26 | } 27 | 28 | public void setCode(int code) { 29 | this.code = code; 30 | } 31 | 32 | public String getMsg() { 33 | return msg; 34 | } 35 | 36 | public void setMsg(String msg) { 37 | this.msg = msg; 38 | } 39 | 40 | public String getStime() { 41 | return stime; 42 | } 43 | 44 | public void setStime(String stime) { 45 | this.stime = stime; 46 | } 47 | 48 | public T getData() { 49 | return data; 50 | } 51 | 52 | public void setData(T data) { 53 | this.data = data; 54 | } 55 | 56 | public T getList() { 57 | return list; 58 | } 59 | 60 | public void setList(T list) { 61 | this.list = list; 62 | } 63 | 64 | @Override 65 | public String toString() { 66 | StringBuilder sb = new StringBuilder(); 67 | sb.append("code=").append(code); 68 | if (null != data) { 69 | sb.append(" data:").append(data.toString()); 70 | } 71 | sb.append(" message=").append(msg).append(" start =").append(stime); 72 | return sb.toString(); 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/NetWork/JKX_HttpCommonInterceptor.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.NetWork; 2 | 3 | import android.util.Log; 4 | 5 | import java.io.IOException; 6 | import java.util.HashMap; 7 | import java.util.Map; 8 | 9 | import okhttp3.Interceptor; 10 | import okhttp3.Request; 11 | import okhttp3.Response; 12 | 13 | /** 14 | * JKX2018 15 | * Created by xyrzx on 2018/5/4. 16 | */ 17 | public class JKX_HttpCommonInterceptor implements Interceptor { 18 | 19 | private Map mHeaderParamsMap = new HashMap<>(); 20 | JKX_HttpCommonInterceptor() { 21 | 22 | } 23 | 24 | @Override 25 | public Response intercept(Chain chain) throws IOException { 26 | Log.d("HttpCommonInterceptor","add common params"); 27 | Request oldRequest = chain.request(); 28 | // 新的请求 29 | Request.Builder requestBuilder = oldRequest.newBuilder(); 30 | requestBuilder.method(oldRequest.method(), oldRequest.body()); 31 | //添加公共参数,添加到header中 32 | if(mHeaderParamsMap.size() > 0){ 33 | for(Map.Entry params:mHeaderParamsMap.entrySet()){ 34 | requestBuilder.header(params.getKey(),params.getValue()); 35 | } 36 | } 37 | Request newRequest = requestBuilder.build(); 38 | return chain.proceed(newRequest); 39 | } 40 | 41 | public static class Builder{ 42 | JKX_HttpCommonInterceptor mHttpCommonInterceptor; 43 | 44 | public Builder(){ 45 | mHttpCommonInterceptor = new JKX_HttpCommonInterceptor(); 46 | } 47 | 48 | public Builder addHeaderParams(String key, String value){ 49 | mHttpCommonInterceptor.mHeaderParamsMap.put(key,value); 50 | return this; 51 | } 52 | 53 | public Builder addHeaderParams(String key, int value){ 54 | return addHeaderParams(key, String.valueOf(value)); 55 | } 56 | 57 | public Builder addHeaderParams(String key, float value){ 58 | return addHeaderParams(key, String.valueOf(value)); 59 | } 60 | 61 | public Builder addHeaderParams(String key, long value){ 62 | return addHeaderParams(key, String.valueOf(value)); 63 | } 64 | 65 | public Builder addHeaderParams(String key, double value){ 66 | return addHeaderParams(key, String.valueOf(value)); 67 | } 68 | 69 | 70 | public JKX_HttpCommonInterceptor build(){ 71 | return mHttpCommonInterceptor; 72 | } 73 | } 74 | 75 | } 76 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/NetWork/JKX_Interface.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.NetWork; 2 | 3 | import com.blankj.utilcode.util.StringUtils; 4 | import com.tool.rss.ui.model.HotSearchEntity; 5 | import com.tool.rss.ui.model.VersionEntity; 6 | 7 | import io.reactivex.Observable; 8 | import retrofit2.http.Field; 9 | import retrofit2.http.FormUrlEncoded; 10 | import retrofit2.http.GET; 11 | import retrofit2.http.POST; 12 | import retrofit2.http.Query; 13 | 14 | /** 15 | * JKX2018 16 | * Created by xyrzx on 2018/5/7. 17 | */ 18 | public interface JKX_Interface { 19 | 20 | /*垃圾分类更新-垃圾分类更新 */ 21 | @GET("trashupdate") 22 | Observable getAppVersion(@Query("version") String orderId); 23 | 24 | /*垃圾分类更新-垃圾分类更新 */ 25 | @GET("getRefuseHotSearch") 26 | Observable getRefuseHotSearch(); 27 | 28 | 29 | /* 请求Oauth */ 30 | @GET("searchList.jsp?uID=AAEExdgvKAAAAAqKJmVZugEAZAM%3D&v=5&dp=1&pid=sogou-waps-7880d7226e872b77&w=1283&t=1561362565111&s_t=1561362573442&s_from=result_up&htprequery=%E5%9E%83%E5%9C%BE%E5%88%86%E7%B1%BB&keyword=%E5%9E%83%E5%9C%BE%E5%88%86%E7%B1%BB&pg=webSearchList&s=%E6%90%9C%E7%B4%A2&suguuid=0c0c451f-204a-4653-b3f1-a30c8451e048&sugsuv=AAEExdgvKAAAAAqKJmVZugEAZAM&sugtime=1561362573441") 31 | Observable searchType(); 32 | 33 | /* 腾讯图片鉴权 */ 34 | @FormUrlEncoded 35 | @POST("image_tag") // https://api.ai.qq.com/fcgi-bin/image/image_tag 36 | Observable image_tag(@Field("app_id") int app_id, 37 | @Field("time_stamp") long time_stamp, 38 | @Field("nonce_str") String nonce_str, 39 | @Field("sign") String sign, 40 | @Field("image") String image); 41 | 42 | /* 请求Oauth */ 43 | @FormUrlEncoded 44 | @POST("cities/search") 45 | Observable test(@Field("action") String action, 46 | @Field("language") String language); 47 | } 48 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/NetWork/JackHeaderUtil.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.NetWork; 2 | 3 | import com.blankj.utilcode.util.AppUtils; 4 | import com.blankj.utilcode.util.DeviceUtils; 5 | 6 | import java.util.Hashtable; 7 | 8 | /** 9 | * JKX2018 10 | * Created by xyrzx on 2018/5/4. 11 | */ 12 | public class JackHeaderUtil { 13 | 14 | public static Hashtable getDefaultHeaders() { 15 | Hashtable headers = new Hashtable(); 16 | String skey = AppManager.getInstance().getSkey(); 17 | String imei = AppManager.getInstance().getFakeIMEI(); 18 | String vid = AppUtils.getAppVersionName(); 19 | String model = DeviceUtils.getModel(); 20 | String os = "Android"; 21 | String osv = DeviceUtils.getSDKVersionName(); 22 | if (skey != null){ 23 | headers.put("skey", skey); 24 | } 25 | if (imei != null) { 26 | headers.put("imei", imei); 27 | } 28 | if (vid != null) { 29 | headers.put("vid", vid); 30 | } 31 | if (model != null) { 32 | headers.put("model", model); 33 | } 34 | if (osv != null) { 35 | headers.put("osv", osv); 36 | } 37 | headers.put("os", os); 38 | return headers; 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/NetWork/RequestModel/UpLoadOrderInfoV2Request.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.NetWork.RequestModel; 2 | 3 | import java.io.File; 4 | 5 | /** 6 | * 页面 7 | * 8 | * @author jack 9 | * @date 2018/7/7 10 | * @note - 11 | * --------------------------------------------------------------------------------------------------------------------- 12 | * @modified - 13 | * @date - 14 | * @note - 15 | */ 16 | public class UpLoadOrderInfoV2Request { 17 | /** 请求信息 */ 18 | public BodyBean body; 19 | 20 | public static class BodyBean { 21 | public String orderId; 22 | public String describe; 23 | public File file; 24 | public String fileRuleId; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/NetWork/error/TrustAllTrustManager.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.NetWork.error; 2 | 3 | public class TrustAllTrustManager implements javax.net.ssl.TrustManager, javax.net.ssl.X509TrustManager { 4 | 5 | public java.security.cert.X509Certificate[] getAcceptedIssuers() { 6 | return null; 7 | } 8 | 9 | public boolean isServerTrusted(java.security.cert.X509Certificate[] certs) { 10 | return true; 11 | } 12 | 13 | public boolean isClientTrusted(java.security.cert.X509Certificate[] certs) { 14 | return true; 15 | } 16 | 17 | public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) 18 | throws java.security.cert.CertificateException { 19 | return; 20 | } 21 | 22 | public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) 23 | throws java.security.cert.CertificateException { 24 | return; 25 | } 26 | 27 | } 28 | 29 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/activity/SettingActivity.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.activity; 2 | 3 | import android.content.Intent; 4 | import android.net.Uri; 5 | import android.os.Build; 6 | import android.view.View; 7 | import android.widget.ImageView; 8 | import android.widget.TextView; 9 | 10 | import com.blankj.utilcode.util.AppUtils; 11 | import com.blankj.utilcode.util.SPUtils; 12 | import com.tool.rss.R; 13 | import com.tool.rss.base.BaseJackActivity; 14 | 15 | public class SettingActivity extends BaseJackActivity implements View.OnClickListener { 16 | private ImageView backBtn; 17 | private TextView mStatus; 18 | private ImageView mImgRedVerios; 19 | @Override 20 | public void initContentView() { 21 | setContentView(R.layout.activity_setting); 22 | } 23 | 24 | @Override 25 | public void initView() { 26 | initStatusWindows(); 27 | backBtn = (ImageView) findViewById(R.id.camera_back_toolBar); 28 | backBtn.setOnClickListener(this); 29 | mStatus = (TextView) findViewById(R.id.tvStatusBar); 30 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 31 | mStatus.setVisibility(View.VISIBLE); 32 | initStatusHeight(mStatus); 33 | } 34 | findViewById(R.id.ll_setting_app_info).setOnClickListener(this); 35 | findViewById(R.id.ll_setting_app_comment).setOnClickListener(this); 36 | 37 | mImgRedVerios = (ImageView) findViewById(R.id.iv_setting_red_point); 38 | 39 | swipeAnnel(); 40 | } 41 | 42 | @Override 43 | public void initData() { 44 | super.initData(); 45 | } 46 | 47 | @Override 48 | protected void onResume() { 49 | super.onResume(); 50 | boolean is_update = SPUtils.getInstance().getBoolean("is_update", false); 51 | if (is_update) 52 | mImgRedVerios.setVisibility(View.VISIBLE); 53 | else mImgRedVerios.setVisibility(View.GONE); 54 | } 55 | 56 | @Override 57 | public void onClick(View v) { 58 | switch (v.getId()) { 59 | case R.id.camera_back_toolBar: 60 | finish(); 61 | break; 62 | case R.id.ll_setting_app_info: 63 | startActivity(new Intent(this, AppInfoActivity.class)); 64 | break; 65 | case R.id.ll_setting_app_comment: 66 | //评价 67 | Intent i = new Intent(Intent.ACTION_VIEW); 68 | i.setData(Uri.parse("market://details?id=" + AppUtils.getAppPackageName())); 69 | i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 70 | startActivity(i); 71 | break; 72 | } 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/activity/WelcomeActivity.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.activity; 2 | 3 | import android.content.Intent; 4 | import android.graphics.Color; 5 | import android.os.Build; 6 | import android.os.Bundle; 7 | import android.view.View; 8 | import android.view.Window; 9 | 10 | import com.tool.rss.R; 11 | import com.tool.rss.base.BaseActivity; 12 | import com.tool.rss.utils.RxCountDown; 13 | 14 | import io.reactivex.Observer; 15 | import io.reactivex.disposables.Disposable; 16 | 17 | public class WelcomeActivity extends BaseActivity { 18 | 19 | @Override 20 | protected void onCreate(Bundle savedInstanceState) { 21 | requestWindowFeature(Window.FEATURE_NO_TITLE); 22 | super.onCreate(savedInstanceState); 23 | setContentView(R.layout.activity_welcome); 24 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 25 | getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE); 26 | getWindow().setStatusBarColor(Color.TRANSPARENT); 27 | } 28 | RxCountDown.countdown(2).doOnSubscribe(disposable -> { 29 | 30 | }).subscribe(new Observer() { 31 | @Override 32 | public void onSubscribe(Disposable d) { 33 | } 34 | @Override 35 | public void onNext(Integer integer) { 36 | } 37 | @Override 38 | public void onError(Throwable e) { 39 | } 40 | @Override 41 | public void onComplete() { 42 | startActivity(new Intent(WelcomeActivity.this, HomeActivity.class)); 43 | finish(); 44 | } 45 | }); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/adapter/HomeAdapter.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.adapter; 2 | 3 | import android.widget.TextView; 4 | 5 | import com.chad.library.adapter.base.BaseQuickAdapter; 6 | import com.chad.library.adapter.base.BaseViewHolder; 7 | import com.tool.rss.R; 8 | import com.tool.rss.ui.model.TrashResultEntity; 9 | 10 | public class HomeAdapter extends BaseQuickAdapter { 11 | 12 | public HomeAdapter() { 13 | super(R.layout.adapter_home); 14 | } 15 | 16 | @Override 17 | protected void convert(BaseViewHolder helper, TrashResultEntity.DataBean item) { 18 | helper.setText(R.id.adapter_home_txt, item.Name); 19 | TextView mTvStatu = helper.getView(R.id.adapter_home_statu); 20 | String garbageName = ""; 21 | int gravageColor = R.color.tarch_g; 22 | switch (item.Kind) { 23 | case 1: 24 | garbageName = "可回收物"; 25 | gravageColor = R.color.tarch_k; 26 | break; 27 | case 2: 28 | garbageName = "有害垃圾"; 29 | gravageColor = R.color.tarch_y; 30 | break; 31 | case 3: 32 | garbageName = "易腐垃圾"; 33 | gravageColor = R.color.tarch_s; 34 | break; 35 | case 4: 36 | garbageName = "其他垃圾"; 37 | gravageColor = R.color.tarch_g; 38 | break; 39 | case 1008: 40 | garbageName = item.msg; 41 | gravageColor = R.color.tarch_null; 42 | break; 43 | default: 44 | garbageName = "不属于日常生活垃圾"; 45 | gravageColor = R.color.tarch_null; 46 | break; 47 | } 48 | mTvStatu.setText(garbageName); 49 | mTvStatu.setTextColor(mContext.getResources().getColor(gravageColor)); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/adapter/HomeDetailAdapter.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.adapter; 2 | 3 | import android.view.ViewGroup; 4 | import android.widget.LinearLayout; 5 | 6 | import com.blankj.utilcode.util.LogUtils; 7 | import com.blankj.utilcode.util.SizeUtils; 8 | import com.chad.library.adapter.base.BaseQuickAdapter; 9 | import com.chad.library.adapter.base.BaseViewHolder; 10 | import com.tool.rss.R; 11 | import com.tool.rss.ui.model.DetailAllEntity; 12 | 13 | public class HomeDetailAdapter extends BaseQuickAdapter { 14 | public HomeDetailAdapter() { 15 | super(R.layout.adapter_home_detail); 16 | } 17 | 18 | @Override 19 | protected void convert(BaseViewHolder helper, DetailAllEntity.DataBean item) { 20 | helper.setText(R.id.detail_name, item.name); 21 | LinearLayout mLlTops = helper.getView(R.id.ll_detail_tops); 22 | LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, SizeUtils.dp2px(54)); 23 | LogUtils.e(helper.getPosition() +"-----------------" + helper.getPosition() % 2); 24 | if (helper.getAdapterPosition() % 2 == 1) { 25 | layoutParams.leftMargin = SizeUtils.dp2px(15); 26 | layoutParams.rightMargin = SizeUtils.dp2px(9); 27 | } else { 28 | layoutParams.leftMargin = SizeUtils.dp2px(9); 29 | layoutParams.rightMargin = SizeUtils.dp2px(15); 30 | } 31 | layoutParams.topMargin = SizeUtils.dp2px(15); 32 | mLlTops.setLayoutParams(layoutParams); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/adapter/HomeDetailContentAdapter.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.adapter; 2 | 3 | import com.chad.library.adapter.base.BaseQuickAdapter; 4 | import com.chad.library.adapter.base.BaseViewHolder; 5 | import com.tool.rss.R; 6 | import com.tool.rss.ui.model.DetailAllEntity; 7 | 8 | public class HomeDetailContentAdapter extends BaseQuickAdapter { 9 | public HomeDetailContentAdapter() { 10 | super(R.layout.adapter_detaill_content); 11 | } 12 | 13 | @Override 14 | protected void convert(BaseViewHolder helper, DetailAllEntity.ContentBean item) { 15 | helper.setText(R.id.detail_content_a, item.name); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/adapter/HomeTipsAdapter.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.adapter; 2 | 3 | import com.chad.library.adapter.base.BaseQuickAdapter; 4 | import com.chad.library.adapter.base.BaseViewHolder; 5 | import com.tool.rss.R; 6 | import com.tool.rss.ui.model.ItemEntity; 7 | 8 | public class HomeTipsAdapter extends BaseQuickAdapter { 9 | public HomeTipsAdapter() { 10 | super(R.layout.adapter_tips); 11 | } 12 | 13 | @Override 14 | protected void convert(BaseViewHolder helper, ItemEntity item) { 15 | helper.setText(R.id.adapter_tips_txt, item.title); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/adapter/HomeTypeAdapter.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.adapter; 2 | 3 | import android.widget.ImageView; 4 | import android.widget.TextView; 5 | 6 | import com.chad.library.adapter.base.BaseQuickAdapter; 7 | import com.chad.library.adapter.base.BaseViewHolder; 8 | import com.tool.rss.R; 9 | import com.tool.rss.ui.model.ItemEntity; 10 | 11 | public class HomeTypeAdapter extends BaseQuickAdapter { 12 | 13 | public HomeTypeAdapter() { 14 | super(R.layout.adapter_home_type); 15 | } 16 | 17 | @Override 18 | protected void convert(BaseViewHolder helper, ItemEntity item) { 19 | ImageView img = helper.getView(R.id.home_type_img); 20 | TextView txt = helper.getView(R.id.home_type_txt); 21 | img.setBackgroundResource(item.img); 22 | txt.setText(item.title); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/fragment/ClassFragment.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.fragment; 2 | 3 | import android.content.Intent; 4 | import android.view.View; 5 | 6 | import com.tool.rss.R; 7 | import com.tool.rss.base.BaseJackFragment; 8 | import com.tool.rss.ui.activity.HomeActivity; 9 | import com.tool.rss.ui.activity.SettingActivity; 10 | 11 | public class ClassFragment extends BaseJackFragment implements View.OnClickListener { 12 | 13 | @Override 14 | public int getContentView() { 15 | return R.layout.fragment_class; 16 | } 17 | 18 | @Override 19 | public void initView(View rootView) { 20 | rootView.findViewById(R.id.class_setting).setOnClickListener(this); 21 | rootView.findViewById(R.id.class_new).setOnClickListener(this); 22 | } 23 | 24 | @Override 25 | public void onClick(View v) { 26 | switch (v.getId()) { 27 | case R.id.class_setting: 28 | startActivity(new Intent(mContext, SettingActivity.class)); 29 | break; 30 | case R.id.class_new: 31 | startActivity(new Intent(mContext, HomeActivity.class)); 32 | break; 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/model/DetailAllEntity.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.model; 2 | 3 | import java.util.List; 4 | 5 | public class DetailAllEntity { 6 | public String title; 7 | public int colorId; 8 | public int drawableId; 9 | public String content; 10 | public List list; 11 | public List contents; 12 | public static class DataBean { 13 | public String name; 14 | } 15 | public static class ContentBean { 16 | public String name; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/model/HotSearchEntity.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.model; 2 | 3 | import java.util.List; 4 | 5 | public class HotSearchEntity { 6 | 7 | /** 8 | * success : true 9 | * data : [{"id":15,"name":"测试1"},{"id":1,"name":"测试2"}] 10 | */ 11 | 12 | public boolean success; 13 | public List data; 14 | 15 | public static class DataBean { 16 | /** 17 | * id : 15 18 | * name : 测试1 19 | */ 20 | public int id; 21 | public String name; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/model/ItemEntity.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.model; 2 | 3 | public class ItemEntity { 4 | public String title; 5 | public int img; 6 | public int type; 7 | } 8 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/model/TrashResultEntity.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.model; 2 | 3 | import com.blankj.utilcode.util.StringUtils; 4 | 5 | import java.util.List; 6 | 7 | public class TrashResultEntity { 8 | /** 9 | * Ok : true 10 | * Msg : null 11 | * Data : [{"Name":"鱼骨","Kind":3},{"Name":"鱼骨头","Kind":3},{"Name":"鱼","Kind":3},{"Name":"鱿鱼","Kind":3}] 12 | * Id : 0 13 | */ 14 | public boolean Ok; 15 | public Object Msg; 16 | public int Id; 17 | public List Data; 18 | 19 | public static class DataBean { 20 | /** 21 | * Name : 鱼骨 22 | * Kind : 3 23 | */ 24 | public String Name; 25 | public int Kind; 26 | public String msg; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/model/TxLoadEntity.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.model; 2 | 3 | import java.util.List; 4 | 5 | public class TxLoadEntity { 6 | /** 7 | * ret : 0 8 | * msg : ok 9 | * data : {"tag_list":[{"tag_name":"小孩","tag_confidence":25},{"tag_name":"手脚","tag_confidence":18}]} 10 | */ 11 | public int ret; 12 | public String msg; 13 | public DataBean data; 14 | public static class DataBean { 15 | public List tag_list; 16 | public static class TagListBean { 17 | /*** tag_name : 小孩* tag_confidence : 25*/ 18 | public String tag_name; 19 | public int tag_confidence; 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/model/TxSignatureEntity.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.model; 2 | 3 | public class TxSignatureEntity { 4 | public String key; 5 | public Object value; 6 | } 7 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/model/VersionEntity.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.model; 2 | 3 | public class VersionEntity { 4 | 5 | /** 6 | * data : {"isForce":false,"version":1,"message":"就是想更新了","url":"https://www.pgyer.com/apiv2/app/install?appKey=10d23555bf124ac18341b93f3cd797ad&_api_key=140e4c2cf3bac3595b7d980c802a24b0"} 7 | */ 8 | 9 | public DataBean data; 10 | 11 | public static class DataBean { 12 | /** 13 | * isForce : false 14 | * version : 1 15 | * message : 就是想更新了 16 | * url : https://www.pgyer.com/apiv2/app/install?appKey=10d23555bf124ac18341b93f3cd797ad&_api_key=140e4c2cf3bac3595b7d980c802a24b0 17 | */ 18 | 19 | public boolean isForce; 20 | public int version; 21 | public String message; 22 | public String url; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/widget/TopSnackBar/AnimationUtils.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.widget.TopSnackBar; 2 | 3 | import android.support.v4.view.animation.FastOutLinearInInterpolator; 4 | import android.support.v4.view.animation.FastOutSlowInInterpolator; 5 | import android.support.v4.view.animation.LinearOutSlowInInterpolator; 6 | import android.view.animation.Animation; 7 | import android.view.animation.DecelerateInterpolator; 8 | import android.view.animation.Interpolator; 9 | import android.view.animation.LinearInterpolator; 10 | 11 | 12 | public class AnimationUtils { 13 | static final Interpolator LINEAR_INTERPOLATOR = new LinearInterpolator(); 14 | static final Interpolator FAST_OUT_SLOW_IN_INTERPOLATOR = new FastOutSlowInInterpolator(); 15 | static final Interpolator FAST_OUT_LINEAR_IN_INTERPOLATOR = new FastOutLinearInInterpolator(); 16 | static final Interpolator LINEAR_OUT_SLOW_IN_INTERPOLATOR = new LinearOutSlowInInterpolator(); 17 | static final Interpolator DECELERATE_INTERPOLATOR = new DecelerateInterpolator(); 18 | 19 | /** 20 | * Linear interpolation between {@code startValue} and {@code endValue} by {@code fraction}. 21 | */ 22 | static float lerp(float startValue, float endValue, float fraction) { 23 | return startValue + (fraction * (endValue - startValue)); 24 | } 25 | 26 | static int lerp(int startValue, int endValue, float fraction) { 27 | return startValue + Math.round(fraction * (endValue - startValue)); 28 | } 29 | 30 | static class AnimationListenerAdapter implements Animation.AnimationListener { 31 | @Override 32 | public void onAnimationStart(Animation animation) { 33 | } 34 | 35 | @Override 36 | public void onAnimationEnd(Animation animation) { 37 | } 38 | 39 | @Override 40 | public void onAnimationRepeat(Animation animation) { 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/widget/TopSnackBar/Prompt.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.widget.TopSnackBar; 2 | 3 | 4 | import com.tool.rss.R; 5 | 6 | public enum Prompt { 7 | /** 8 | * 红色,错误 9 | */ 10 | ERROR(R.mipmap.common_bounced_icon_error, R.color.black), 11 | 12 | /** 13 | * 红色,警告 14 | */ 15 | WARNING(R.mipmap.common_bounced_icon_warning, R.color.black), 16 | 17 | /** 18 | * 绿色,成功 19 | */ 20 | SUCCESS(R.mipmap.common_bounced_icon_successful, R.color.black); 21 | 22 | private int resIcon; 23 | private int backgroundColor; 24 | 25 | Prompt(int resIcon, int backgroundColor) { 26 | this.resIcon = resIcon; 27 | this.backgroundColor = backgroundColor; 28 | } 29 | 30 | public int getResIcon() { 31 | return resIcon; 32 | } 33 | 34 | public void setResIcon(int resIcon) { 35 | this.resIcon = resIcon; 36 | } 37 | 38 | public int getBackgroundColor() { 39 | return backgroundColor; 40 | } 41 | 42 | public void setBackgroundColor(int backgroundColor) { 43 | this.backgroundColor = backgroundColor; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/widget/status/AbstractStatus.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.widget.status; 2 | 3 | import android.content.Context; 4 | import android.view.View; 5 | 6 | /** 7 | * 抽象状态 8 | * 9 | * @author jack 10 | * @date 2018.06.04 11 | * @note - 12 | * --------------------------------------------------------------------------------------------------------------------- 13 | * @modified - 14 | * @date - 15 | * @note - 16 | */ 17 | public abstract class AbstractStatus { 18 | /** 上下文 */ 19 | private Context mContext; 20 | /** 根布局点击事件 */ 21 | private View.OnClickListener mOnRootViewClickListener; 22 | 23 | /** 24 | * 构造函数 25 | * 26 | * @param context 上下文 27 | */ 28 | public AbstractStatus(Context context) { 29 | mContext = context; 30 | } 31 | 32 | /** 33 | * 构造函数 34 | * 35 | * @param context 上下文 36 | * @param onRootViewClickListener 根布局点击事件 37 | */ 38 | public AbstractStatus(Context context, View.OnClickListener onRootViewClickListener) { 39 | mContext = context; 40 | mOnRootViewClickListener = onRootViewClickListener; 41 | } 42 | 43 | /** 44 | * 获取上下文 45 | * 46 | * @return 上下文 47 | */ 48 | public Context getContext() { 49 | return mContext; 50 | } 51 | 52 | /** 53 | * 获取根布局点击事件 54 | * 55 | * @return 根布局点击事件 56 | */ 57 | public View.OnClickListener getOnRootViewClickListener() { 58 | return mOnRootViewClickListener; 59 | } 60 | 61 | /** 62 | * 获取内部布局 63 | * 64 | * @return 内容布局 65 | */ 66 | public abstract int getContentView(); 67 | 68 | /** 69 | * 当创建了视图 70 | * 71 | * @param view 视图 72 | */ 73 | public void onCreateView(View view) { 74 | // 不处理 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/widget/status/LoadAbstract.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.widget.status; 2 | 3 | import android.content.Context; 4 | 5 | import com.tool.rss.R; 6 | 7 | public class LoadAbstract extends AbstractStatus{ 8 | public LoadAbstract(Context context) { 9 | super(context); 10 | } 11 | @Override 12 | public int getContentView() { 13 | return R.layout.item_status_loading; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/widget/status/StatusLayout.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.widget.status; 2 | 3 | import android.content.Context; 4 | import android.view.LayoutInflater; 5 | import android.view.View; 6 | import android.view.ViewGroup; 7 | import android.widget.FrameLayout; 8 | import android.widget.RelativeLayout; 9 | 10 | import java.security.InvalidParameterException; 11 | import java.util.TimerTask; 12 | 13 | /** 14 | * 状态布局 15 | * 16 | * @author jack 17 | * @date 2018.06.03 18 | * @note - 19 | * ------------------------------------------------------------------------------------------------- 20 | * @modified - 21 | * @date - 22 | * @note - 23 | */ 24 | public class StatusLayout extends RelativeLayout { 25 | /** 26 | * 构造函数 27 | * 28 | * @param context 上下文 29 | * @param originView 原始视图 30 | */ 31 | public StatusLayout(final Context context, final View originView) { 32 | super(context); 33 | 34 | if (context == null) { 35 | throw new InvalidParameterException("context can not be null."); 36 | } 37 | if (originView == null) { 38 | throw new InvalidParameterException("view can not be null."); 39 | } 40 | 41 | setVisibility(View.GONE); 42 | 43 | originView.post(new TimerTask() { 44 | @Override 45 | public void run() { 46 | if (originView.getParent() instanceof ViewGroup) { 47 | ViewGroup parent = (ViewGroup) originView.getParent(); 48 | // 移除原始控件,用FrameLayout替换 49 | parent.removeView(originView); 50 | FrameLayout child = new FrameLayout(context); 51 | child.setLayoutParams(originView.getLayoutParams()); 52 | // 原本放在FrameLayout底层 53 | child.addView(originView); 54 | // StatusLayout放在FrameLayout顶层 55 | child.addView(StatusLayout.this); 56 | parent.addView(child, parent.indexOfChild(originView)); 57 | } 58 | } 59 | }); 60 | } 61 | 62 | /** 63 | * 显示状态 64 | * 65 | * @param status 状态页 66 | */ 67 | public void showStatus(AbstractStatus status) { 68 | View statusView = LayoutInflater.from(status.getContext()).inflate(status.getContentView(), this, false); 69 | OnClickListener listener = status.getOnRootViewClickListener(); 70 | if (listener != null) { 71 | statusView.setOnClickListener(listener); 72 | } 73 | status.onCreateView(statusView); 74 | 75 | // 清除当前视图 76 | if (getChildAt(0) != null) { 77 | removeViewAt(0); 78 | } 79 | // 防止点击穿透 80 | statusView.setClickable(true); 81 | // 添加状态视图 82 | addView(statusView); 83 | setVisibility(VISIBLE); 84 | } 85 | 86 | /** 87 | * 隐藏状态 88 | */ 89 | public void hideStatus() { 90 | setVisibility(View.GONE); 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/widget/view/LastInputEditText.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.widget.view; 2 | 3 | 4 | import android.content.Context; 5 | import android.support.v7.widget.AppCompatEditText; 6 | import android.util.AttributeSet; 7 | 8 | public class LastInputEditText extends AppCompatEditText { 9 | 10 | public LastInputEditText(Context context, AttributeSet attrs, int defStyle) { 11 | super(context, attrs, defStyle); 12 | } 13 | 14 | public LastInputEditText(Context context, AttributeSet attrs) { 15 | super(context, attrs); 16 | } 17 | 18 | public LastInputEditText(Context context) { 19 | super(context); 20 | } 21 | 22 | @Override 23 | protected void onSelectionChanged(int selStart, int selEnd) { 24 | super.onSelectionChanged(selStart, selEnd); 25 | //保证光标始终在最后面 26 | if(selStart==selEnd){//防止不能多选 27 | setSelection(getText().length()); 28 | } 29 | 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/widget/view/NoScrollViewPager.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.widget.view; 2 | 3 | import android.content.Context; 4 | import android.support.annotation.NonNull; 5 | import android.support.annotation.Nullable; 6 | import android.support.v4.view.ViewPager; 7 | import android.util.AttributeSet; 8 | import android.view.MotionEvent; 9 | 10 | 11 | /** 12 | * 页面 13 | * 14 | * @author jack 15 | * @date 2018/9/4 16 | * @note - 17 | * --------------------------------------------------------------------------------------------------------------------- 18 | * @modified - 19 | * @date - 20 | * @note - 21 | */ 22 | public class NoScrollViewPager extends ViewPager { 23 | private boolean isScroll; 24 | 25 | public NoScrollViewPager(Context context) { 26 | super(context); 27 | } 28 | 29 | public NoScrollViewPager(@NonNull Context context, @Nullable AttributeSet attrs) { 30 | super(context, attrs); 31 | } 32 | 33 | /** 34 | * 1.dispatchTouchEvent一般情况不做处理 35 | *,如果修改了默认的返回值,子孩子都无法收到事件 36 | */ 37 | @Override 38 | public boolean dispatchTouchEvent(MotionEvent ev) { 39 | return super.dispatchTouchEvent(ev); // return true;不行 40 | } 41 | /** 42 | * 是否拦截 43 | * 拦截:会走到自己的onTouchEvent方法里面来 44 | * 不拦截:事件传递给子孩子 45 | */ 46 | @Override 47 | public boolean onInterceptTouchEvent(MotionEvent ev) { 48 | // return false;//可行,不拦截事件, 49 | // return true;//不行,孩子无法处理事件 50 | //return super.onInterceptTouchEvent(ev);//不行,会有细微移动 51 | if (isScroll){ 52 | return super.onInterceptTouchEvent(ev); 53 | }else{ 54 | return false; 55 | } 56 | } 57 | /** 58 | * 是否消费事件 59 | * 消费:事件就结束 60 | * 不消费:往父控件传 61 | */ 62 | @Override 63 | public boolean onTouchEvent(MotionEvent ev) { 64 | //return false;// 可行,不消费,传给父控件 65 | //return true;// 可行,消费,拦截事件 66 | //super.onTouchEvent(ev); //不行, 67 | //虽然onInterceptTouchEvent中拦截了, 68 | //但是如果viewpage里面子控件不是viewgroup,还是会调用这个方法. 69 | if (isScroll){ 70 | return super.onTouchEvent(ev); 71 | }else { 72 | return true;// 可行,消费,拦截事件 73 | } 74 | } 75 | public void setScroll(boolean scroll) { 76 | isScroll = scroll; 77 | } 78 | } 79 | 80 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/ui/widget/view/TabIndicator.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.ui.widget.view; 2 | 3 | import android.content.Context; 4 | import android.util.AttributeSet; 5 | import android.view.View; 6 | import android.widget.ImageView; 7 | import android.widget.RelativeLayout; 8 | import android.widget.TextView; 9 | 10 | import com.tool.rss.R; 11 | import com.tool.rss.utils.ResUtils; 12 | 13 | 14 | public class TabIndicator extends RelativeLayout { 15 | private ImageView ivTabIcon; 16 | private TextView tvTabHint; 17 | private TextView tvTabUnRead; 18 | 19 | private int normalIconId; 20 | private int focusIconId; 21 | 22 | public TabIndicator(Context context) { 23 | this(context, null); 24 | } 25 | 26 | public TabIndicator(Context context, AttributeSet attrs) { 27 | super(context, attrs); 28 | 29 | // 将布局文件和 代码进行绑定 30 | View.inflate(context, R.layout.tab_indicator, this); 31 | 32 | ivTabIcon = (ImageView) findViewById(R.id.tab_indicator_icon); 33 | tvTabHint = (TextView) findViewById(R.id.tab_indicator_hint); 34 | tvTabUnRead = (TextView) findViewById(R.id.tab_indicator_unread); 35 | 36 | setTabUnreadCount(0); 37 | } 38 | 39 | // 设置tab的title 40 | public void setTabTitle(String title) { 41 | tvTabHint.setText(title); 42 | } 43 | 44 | public void setTabHint(int titleId) { 45 | tvTabHint.setText(titleId); 46 | } 47 | 48 | // 初始化图标 49 | public void setTabIcon(int normalIconId, int focusIconId) { 50 | this.normalIconId = normalIconId; 51 | this.focusIconId = focusIconId; 52 | 53 | ivTabIcon.setImageResource(normalIconId); 54 | } 55 | 56 | // 设置未读数 57 | public void setTabUnreadCount(int unreadCount) { 58 | if (unreadCount <= 0) { 59 | tvTabUnRead.setVisibility(View.GONE); 60 | } else { 61 | if (unreadCount <= 99) { 62 | tvTabUnRead.setText(unreadCount + ""); 63 | } else { 64 | tvTabUnRead.setText("99+"); 65 | } 66 | 67 | tvTabUnRead.setVisibility(View.VISIBLE); 68 | } 69 | } 70 | 71 | // 设置选中 72 | public void setCurrentFocus(boolean selected) { 73 | if (selected) { 74 | ivTabIcon.setImageResource(focusIconId); 75 | } else { 76 | ivTabIcon.setImageResource(normalIconId); 77 | } 78 | } 79 | 80 | // 设置选中 81 | public void setTextGone(boolean selected) { 82 | if (selected) { 83 | tvTabHint.setVisibility(View.GONE); 84 | }else { 85 | tvTabHint.setVisibility(View.VISIBLE); 86 | } 87 | } 88 | 89 | // 设置选中 90 | public void setTextColor(boolean selected) { 91 | if (selected) { 92 | tvTabHint.setTextColor(ResUtils.getColor(R.color.colorPrimaryT)); 93 | }else { 94 | tvTabHint.setTextColor(ResUtils.getColor(R.color.font_666666)); 95 | } 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/utils/EmptyUtils.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.utils; 2 | 3 | import android.os.Build; 4 | import android.util.SparseArray; 5 | import android.util.SparseBooleanArray; 6 | import android.util.SparseIntArray; 7 | import android.util.SparseLongArray; 8 | 9 | import java.lang.reflect.Array; 10 | import java.util.Collection; 11 | import java.util.Map; 12 | 13 | /** 14 | *

判空相关工具类


15 | * 16 | * @author lwc 17 | * @date 2017/3/10 15:37 18 | * @note - 19 | * isEmpty : 判断对象是否为空 20 | * isNotEmpty: 判断对象是否非空 21 | * ------------------------------------------------------------------------------------------------- 22 | * @modified - 23 | * @date - 24 | * @note - 25 | */ 26 | public class EmptyUtils { 27 | /** 28 | * 构造类 29 | */ 30 | private EmptyUtils() { 31 | throw new UnsupportedOperationException("u can't instantiate me..."); 32 | } 33 | 34 | /** 35 | * 判断对象是否为空 36 | * 37 | * @param obj 对象 38 | * @return {@code true}: 为空
{@code false}: 不为空 39 | */ 40 | public static boolean isEmpty(Object obj) { 41 | if (obj == null) { 42 | return true; 43 | } 44 | if (obj instanceof String && obj.toString().length() == 0) { 45 | return true; 46 | } 47 | if (obj.getClass().isArray() && Array.getLength(obj) == 0) { 48 | return true; 49 | } 50 | if (obj instanceof Collection && ((Collection) obj).isEmpty()) { 51 | return true; 52 | } 53 | if (obj instanceof Map && ((Map) obj).isEmpty()) { 54 | return true; 55 | } 56 | if (obj instanceof SparseArray && ((SparseArray) obj).size() == 0) { 57 | return true; 58 | } 59 | if (obj instanceof SparseBooleanArray && ((SparseBooleanArray) obj).size() == 0) { 60 | return true; 61 | } 62 | if (obj instanceof SparseIntArray && ((SparseIntArray) obj).size() == 0) { 63 | return true; 64 | } 65 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) { 66 | if (obj instanceof SparseLongArray && ((SparseLongArray) obj).size() == 0) { 67 | return true; 68 | } 69 | } 70 | return false; 71 | } 72 | 73 | /** 74 | * 判断对象是否非空 75 | * 76 | * @param obj 对象 77 | * @return {@code true}: 非空
{@code false}: 空 78 | */ 79 | public static boolean isNotEmpty(Object obj) { 80 | return !isEmpty(obj); 81 | } 82 | } -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/utils/ExceptionUtil.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.utils; 2 | 3 | import java.io.PrintWriter; 4 | import java.io.StringWriter; 5 | 6 | /** 7 | * 异常工具类 8 | * 9 | * @author jack 10 | * @date 2017.08.20 11 | * @note - 12 | * --------------------------------------------------------------------------------------------------------------------- 13 | * @modified - 14 | * @date - 15 | * @note - 16 | */ 17 | public class ExceptionUtil { 18 | /** 19 | * 获取堆栈信息 20 | * 21 | * @param exception 异常 22 | * @return 堆栈信息 23 | */ 24 | public static String getStackTrace(Exception exception) { 25 | StringWriter writer = new StringWriter(); 26 | exception.printStackTrace(new PrintWriter(writer, true)); 27 | return writer.toString(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/utils/RxCountDown.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.utils; 2 | 3 | import java.util.concurrent.TimeUnit; 4 | 5 | import io.reactivex.Observable; 6 | import io.reactivex.android.schedulers.AndroidSchedulers; 7 | 8 | 9 | public class RxCountDown { 10 | 11 | public static Observable countdown(int time) { 12 | if (time < 0) time = 0; 13 | final int countTime = time; 14 | return Observable.interval(0, 1, TimeUnit.SECONDS) 15 | .subscribeOn(AndroidSchedulers.mainThread()) 16 | .observeOn(AndroidSchedulers.mainThread()) 17 | .map(increaseTime -> countTime - increaseTime.intValue()) 18 | .take(countTime + 1); 19 | } 20 | 21 | 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/utils/status/BarTextColorUtils.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.utils.status; 2 | 3 | import android.app.Activity; 4 | import android.support.v4.view.ViewCompat; 5 | import android.view.View; 6 | import android.view.ViewGroup; 7 | import android.view.Window; 8 | import android.view.WindowManager; 9 | 10 | public class BarTextColorUtils { 11 | /** 12 | * Android5.1以上的处理 13 | */ 14 | public static void setStatusBarColor(Activity activity, int statusColor) { 15 | Window window = activity.getWindow(); 16 | //取消状态栏透明 17 | window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 18 | //添加Flag把状态栏设为可绘制模式 19 | window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); 20 | //设置状态栏颜色 21 | window.setStatusBarColor(statusColor); 22 | //设置系统状态栏处于可见状态 23 | window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); 24 | //让view不根据系统窗口来调整自己的布局 25 | ViewGroup mContentView = (ViewGroup) window.findViewById(Window.ID_ANDROID_CONTENT); 26 | View mChildView = mContentView.getChildAt(0); 27 | if (mChildView != null) { 28 | ViewCompat.setFitsSystemWindows(mChildView, false); 29 | ViewCompat.requestApplyInsets(mChildView); 30 | } 31 | } 32 | 33 | 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/utils/txsign/Base64Util.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.utils.txsign; 2 | 3 | /** 4 | * Base64 工具类 5 | */ 6 | public class Base64Util { 7 | private static final char last2byte = (char) Integer.parseInt("00000011", 2); 8 | private static final char last4byte = (char) Integer.parseInt("00001111", 2); 9 | private static final char last6byte = (char) Integer.parseInt("00111111", 2); 10 | private static final char lead6byte = (char) Integer.parseInt("11111100", 2); 11 | private static final char lead4byte = (char) Integer.parseInt("11110000", 2); 12 | private static final char lead2byte = (char) Integer.parseInt("11000000", 2); 13 | private static final char[] encodeTable = new char[]{'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/'}; 14 | 15 | public Base64Util() { 16 | } 17 | 18 | public static String encode(byte[] from) { 19 | StringBuilder to = new StringBuilder((int) ((double) from.length * 1.34D) + 3); 20 | int num = 0; 21 | char currentByte = 0; 22 | 23 | int i; 24 | for (i = 0; i < from.length; ++i) { 25 | for (num %= 8; num < 8; num += 6) { 26 | switch (num) { 27 | case 0: 28 | currentByte = (char) (from[i] & lead6byte); 29 | currentByte = (char) (currentByte >>> 2); 30 | case 1: 31 | case 3: 32 | case 5: 33 | default: 34 | break; 35 | case 2: 36 | currentByte = (char) (from[i] & last6byte); 37 | break; 38 | case 4: 39 | currentByte = (char) (from[i] & last4byte); 40 | currentByte = (char) (currentByte << 2); 41 | if (i + 1 < from.length) { 42 | currentByte = (char) (currentByte | (from[i + 1] & lead2byte) >>> 6); 43 | } 44 | break; 45 | case 6: 46 | currentByte = (char) (from[i] & last2byte); 47 | currentByte = (char) (currentByte << 4); 48 | if (i + 1 < from.length) { 49 | currentByte = (char) (currentByte | (from[i + 1] & lead4byte) >>> 4); 50 | } 51 | } 52 | 53 | to.append(encodeTable[currentByte]); 54 | } 55 | } 56 | 57 | if (to.length() % 4 != 0) { 58 | for (i = 4 - to.length() % 4; i > 0; --i) { 59 | to.append("="); 60 | } 61 | } 62 | 63 | return to.toString(); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/utils/txsign/FileUtil.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.utils.txsign; 2 | 3 | import android.graphics.Bitmap; 4 | 5 | import java.io.BufferedInputStream; 6 | import java.io.ByteArrayOutputStream; 7 | import java.io.File; 8 | import java.io.FileInputStream; 9 | import java.io.FileNotFoundException; 10 | import java.io.IOException; 11 | 12 | /** 13 | * 文件读取工具类 14 | */ 15 | public class FileUtil { 16 | 17 | /** 18 | * 根据文件路径读取byte[] 数组 19 | */ 20 | public static byte[] readFileByBytes(String filePath) throws IOException { 21 | File file = new File(filePath); 22 | if (!file.exists()) { 23 | throw new FileNotFoundException(filePath); 24 | } else { 25 | ByteArrayOutputStream bos = new ByteArrayOutputStream((int) file.length()); 26 | BufferedInputStream in = null; 27 | 28 | try { 29 | in = new BufferedInputStream(new FileInputStream(file)); 30 | short bufSize = 1024; 31 | byte[] buffer = new byte[bufSize]; 32 | int len1; 33 | while (-1 != (len1 = in.read(buffer, 0, bufSize))) { 34 | bos.write(buffer, 0, len1); 35 | } 36 | 37 | byte[] var7 = bos.toByteArray(); 38 | return var7; 39 | } finally { 40 | try { 41 | if (in != null) { 42 | in.close(); 43 | } 44 | } catch (IOException var14) { 45 | var14.printStackTrace(); 46 | } 47 | 48 | bos.close(); 49 | } 50 | } 51 | } 52 | 53 | /** 54 | * 根据文件路径读取byte[] 数组 55 | */ 56 | public static byte[] readFileByBytes(Bitmap bitmap) throws IOException { 57 | //File file = new File(filePath); 58 | if (bitmap == null) { 59 | return null; 60 | } else { 61 | ByteArrayOutputStream baos = new ByteArrayOutputStream(); 62 | try { 63 | 64 | bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos); 65 | byte[] data = baos.toByteArray(); 66 | return data; 67 | }finally { 68 | baos.close(); 69 | } 70 | } 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/utils/txsign/MD5.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.utils.txsign; 2 | 3 | import java.security.MessageDigest; 4 | 5 | public class MD5 { 6 | /** 7 | * 计算MD5摘要指值 8 | * @param s 9 | * @return 10 | */ 11 | public static String getMD5(String s) { 12 | char hexDigits[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; 13 | try { 14 | byte[] btInput = s.getBytes(); 15 | // 获得MD5摘要算法的 MessageDigest 对象 16 | MessageDigest mdInst = MessageDigest.getInstance("MD5"); 17 | // 使用指定的字节更新摘要 18 | mdInst.update(btInput); 19 | // 获得密文 20 | byte[] md = mdInst.digest(); 21 | // 把密文转换成十六进制的字符串形式 22 | int j = md.length; 23 | char str[] = new char[j * 2]; 24 | int k = 0; 25 | for (int i = 0; i < j; i++) { 26 | byte byte0 = md[i]; 27 | str[k++] = hexDigits[byte0 >>> 4 & 0xf]; 28 | str[k++] = hexDigits[byte0 & 0xf]; 29 | } 30 | return new String(str); 31 | } catch (Exception e) { 32 | e.printStackTrace(); 33 | return null; 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/src/main/java/com/tool/rss/utils/txsign/TransConstant.java: -------------------------------------------------------------------------------- 1 | package com.tool.rss.utils.txsign; 2 | 3 | /** 4 | * 支持语言定义 5 | * @author 小帅丶 6 | * 7 | */ 8 | public class TransConstant { 9 | /** 10 | * 英文 11 | * EN支持的目标语言 12 | * zh, fr, es, it, de, tr, ru, pt, vi, id, ms, th 13 | */ 14 | public static String EN_TARGET[] = new String[]{"en","zh","fr","es","it","de","tr","ru","pt","vi","id","ms","th"}; 15 | /** 16 | * 中文 17 | * ZH支持的目标语言 18 | * en, fr, es, it, de, tr, ru, pt, vi, id, ms, th, jp, kr 19 | */ 20 | public static String ZH_TARGET[] = new String[]{"zh","en","fr","es","it","de","tr","ru","pt","vi","id","ms","th","jp","kr"}; 21 | /** 22 | * 法文 23 | * FR支持的目标语言 24 | * en, zh, es, it, de, tr, ru, pt 25 | */ 26 | public static String FR_TARGET[] = new String[]{"fr","en","zh","es","it","de","tr","ru","pt"}; 27 | /** 28 | * 西班牙文 29 | * ES支持的目标语言 30 | * en, zh, fr, it, de, tr, ru, pt 31 | */ 32 | public static String ES_TARGET[] = new String[]{"es","en","zh","fr","it","de","tr","ru","pt"}; 33 | /** 34 | * 意大利文 35 | * IT支持的目标语言 36 | * en, zh, fr, es, de, tr, ru, pt 37 | */ 38 | public static String IT_TARGET[] = new String[]{"it","en","zh","fr","es","de","tr","ru","pt"}; 39 | /** 40 | * 德文 41 | * DE支持的目标语言 42 | * en, zh, fr, es, it, tr, ru, pt 43 | */ 44 | public static String DE_TARGET[] = new String[]{"de","en","zh","fr","es","it","tr","ru","pt"}; 45 | /** 46 | * 土耳其文 47 | * TR支持的目标语言 48 | * en, zh, fr, es, it, de, ru, pt 49 | */ 50 | public static String TR_TARGET[] = new String[]{"tr","en","zh","fr","es","it","de","ru","pt"}; 51 | /** 52 | * 俄文 53 | * RU支持的目标语言 54 | * en, zh, fr, es, it, de, tr, pt 55 | */ 56 | public static String RU_TARGET[] = new String[]{"ru","en","zh","fr","es","it","de","tr","pt"}; 57 | /** 58 | * 葡萄牙文 59 | * PT支持的目标语言 60 | * en, zh, fr, es, it, de, tr, ru 61 | */ 62 | public static String PT_TARGET[] = new String[]{"pt","en","zh","fr","es","it","de","tr","ru"}; 63 | /** 64 | * 越南文 65 | * VI支持的目标语言 66 | * en, zh 67 | */ 68 | public static String VI_TARGET[] = new String[]{"vi","en","zh"}; 69 | /** 70 | * 印度尼西亚文 71 | * ID支持的目标语言 72 | * en, zh 73 | */ 74 | public static String ID_TARGET[] = new String[]{"id","en","zh"}; 75 | /** 76 | * 马来西亚文 77 | * MS支持的目标语言 78 | * en, zh 79 | */ 80 | public static String MS_TARGET[] = new String[]{"ms","en","zh"}; 81 | /** 82 | * 泰文 83 | * TH支持的目标语言 84 | * en, zh 85 | */ 86 | public static String TH_TARGET[] = new String[]{"th","en","zh"}; 87 | /** 88 | * 日文 89 | * JP支持的目标语言 90 | * zh 91 | */ 92 | public static String JP_TARGET[] = new String[]{"jp","zh"}; 93 | /** 94 | * 韩文 95 | * KR支持的目标语言 96 | * zh 97 | */ 98 | public static String KR_TARGET[] = new String[]{"kr","zh"}; 99 | /** 100 | * 自动识别(中英互译 101 | * auto中英互译 102 | * zh 103 | */ 104 | public static String AUTO_TARGET[] = new String[]{"auto"}; 105 | } 106 | -------------------------------------------------------------------------------- /app/src/main/jniLibs/arm64-v8a/libBaiduSpeechSDK.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/jniLibs/arm64-v8a/libBaiduSpeechSDK.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/arm64-v8a/libbdEASRAndroid.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/jniLibs/arm64-v8a/libbdEASRAndroid.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/arm64-v8a/libbdSpilWakeup.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/jniLibs/arm64-v8a/libbdSpilWakeup.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/arm64-v8a/libbd_easr_s1_merge_normal_20151216.dat.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/jniLibs/arm64-v8a/libbd_easr_s1_merge_normal_20151216.dat.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/arm64-v8a/libvad.dnn.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/jniLibs/arm64-v8a/libvad.dnn.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi-v7a/libBaiduSpeechSDK.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/jniLibs/armeabi-v7a/libBaiduSpeechSDK.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi-v7a/libbdEASRAndroid.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/jniLibs/armeabi-v7a/libbdEASRAndroid.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi-v7a/libbdSpilWakeup.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/jniLibs/armeabi-v7a/libbdSpilWakeup.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi-v7a/libbd_easr_s1_merge_normal_20151216.dat.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/jniLibs/armeabi-v7a/libbd_easr_s1_merge_normal_20151216.dat.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi-v7a/libvad.dnn.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/jniLibs/armeabi-v7a/libvad.dnn.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi/libBaiduSpeechSDK.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/jniLibs/armeabi/libBaiduSpeechSDK.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi/libbdEASRAndroid.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/jniLibs/armeabi/libbdEASRAndroid.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi/libbdSpilWakeup.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/jniLibs/armeabi/libbdSpilWakeup.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi/libbd_easr_s1_merge_normal_20151216.dat.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/jniLibs/armeabi/libbd_easr_s1_merge_normal_20151216.dat.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi/libvad.dnn.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/jniLibs/armeabi/libvad.dnn.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/x86/libBaiduSpeechSDK.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/jniLibs/x86/libBaiduSpeechSDK.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/x86/libbdEASRAndroid.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/jniLibs/x86/libbdEASRAndroid.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/x86/libbdSpilWakeup.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/jniLibs/x86/libbdSpilWakeup.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/x86/libbd_easr_s1_merge_normal_20151216.dat.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/jniLibs/x86/libbd_easr_s1_merge_normal_20151216.dat.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/x86/libvad.dnn.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/jniLibs/x86/libvad.dnn.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/x86_64/libBaiduSpeechSDK.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/jniLibs/x86_64/libBaiduSpeechSDK.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/x86_64/libbdEASRAndroid.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/jniLibs/x86_64/libbdEASRAndroid.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/x86_64/libbdSpilWakeup.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/jniLibs/x86_64/libbdSpilWakeup.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/x86_64/libbd_easr_s1_merge_normal_20151216.dat.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/jniLibs/x86_64/libbd_easr_s1_merge_normal_20151216.dat.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/x86_64/libvad.dnn.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/jniLibs/x86_64/libvad.dnn.so -------------------------------------------------------------------------------- /app/src/main/res/anim/anim_slide_in_from_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/anim/anim_slide_out_to_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/anim/slide_in_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/anim/slide_in_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/anim/slide_out_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/anim/slide_out_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/anim/top_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/anim/top_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 12 | 13 | 19 | 22 | 25 | 26 | 27 | 28 | 34 | 35 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/anim_rotate_loading.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/base_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/res/drawable/base_back.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_home.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_home_detail.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 7 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_home_white10.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_home_white25.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_round_red.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/home_edit_cursor.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_search_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/icon_loading_default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/res/drawable/icon_loading_default.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ios_popup_dialog_bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/res/drawable/ios_popup_dialog_bg.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ios_popup_dialog_btn_left_pressed.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/res/drawable/ios_popup_dialog_btn_left_pressed.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ios_popup_dialog_btn_right_pressed.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/res/drawable/ios_popup_dialog_btn_right_pressed.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ios_popup_dialog_divider.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ios_popup_dialog_left_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ios_popup_dialog_right_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ios_popup_dialog_trans_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyyz3293/GarbageSorting/66c1d955af02b45aed873b73c4f4f16afbbe34bb/app/src/main/res/drawable/ios_popup_dialog_trans_bg.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/rotate.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/selector_btn_bg_white.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/selector_tv_gary_666.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/selector_tv_orange.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_bggrey_roundcorner.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_divider.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_round_rec_light_gary_btn_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_round_rec_orage_btn_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_round_voice.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 17 | 18 | 25 | 26 | 31 | 32 | 37 | 38 | 39 | 45 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_welcome.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/layout/adapter_detaill_content.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 12 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/layout/adapter_home.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 16 | 17 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /app/src/main/res/layout/adapter_home_detail.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 18 | 19 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /app/src/main/res/layout/adapter_home_type.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/layout/adapter_tips.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_class.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 19 | 20 | 21 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_homedetail_header.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 24 | 25 | 34 | 39 | 43 | 52 | 53 | 54 | 59 | 60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_homeresult_header.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 15 | 16 | 25 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_main_view_pager.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_status_loading.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_update_progress_dialog.xml: -------------------------------------------------------------------------------- 1 | 2 | 14 | 15 | 21 | 22 | 30 | 31 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /app/src/main/res/layout/loading_dialog.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 12 | 13 | 17 | 18 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /app/src/main/res/layout/tab_indicator.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 14 | 15 | 21 | 22 | 29 | 30 | 31 | 43 | 44 | -------------------------------------------------------------------------------- /app/src/main/res/layout/view_bsnackbar_big_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/layout/view_bsnackbar_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/layout/view_tsnackbar_big_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/layout/view_tsnackbar_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/layout/view_tsnackbar_layout_include.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 34 |