├── .gitignore ├── .idea ├── .name ├── compiler.xml ├── copyright │ └── profiles_settings.xml ├── encodings.xml ├── gradle.xml ├── libraries │ ├── GDTUnionSDK_4_8_516_min.xml │ ├── adapter_rxjava_2_0_0_beta2.xml │ ├── adapters_1_0_rc3.xml │ ├── analytics_5_6_4.xml │ ├── appcompat_v7_23_1_1.xml │ ├── baseLibrary_1_0_rc3.xml │ ├── cardview_v7_23_1_1.xml │ ├── compiler_1_0_rc3.xml │ ├── converter_gson_2_0_0_beta2.xml │ ├── converter_gson_4_0_0.xml │ ├── data_binding_support_1_1_0.xml │ ├── design_23_1_1.xml │ ├── glide_3_6_1.xml │ ├── gson_2_3_1.xml │ ├── haha_1_3.xml │ ├── imagezoom_2_2_2.xml │ ├── leakcanary_analyzer_1_3_1.xml │ ├── leakcanary_android_1_3_1.xml │ ├── leakcanary_watcher_1_3_1.xml │ ├── library_1_0_rc3.xml │ ├── library_2_4_0.xml │ ├── okhttp_2_5_0.xml │ ├── okhttp_integration_1_3_1.xml │ ├── okio_1_6_0.xml │ ├── org_apache_http_legacy_android_23.xml │ ├── pull_back_layout_1_0_1.xml │ ├── recyclerview_v7_23_1_1.xml │ ├── retrofit_2_0_0_beta2.xml │ ├── rxandroid_1_0_1.xml │ ├── rxbinding_0_2_0.xml │ ├── rxbinding_appcompat_v7_0_2_0.xml │ ├── rxbinding_design_0_2_0.xml │ ├── rxbinding_recyclerview_v7_0_2_0.xml │ ├── rxbinding_support_v4_0_2_0.xml │ ├── rxjava_1_0_14.xml │ ├── rxlifecycle_0_3_0.xml │ ├── rxlifecycle_components_0_3_0.xml │ ├── rxstore_4_0_0.xml │ ├── support_annotations_23_1_1.xml │ ├── support_v4_23_1_1.xml │ └── touch_image_view_1_0_1.xml ├── misc.xml ├── modules.xml ├── runConfigurations.xml ├── vcs.xml └── workspace.xml ├── LICENSE ├── README.md ├── app ├── .gitignore ├── app.iml ├── build.gradle ├── libs │ └── GDTUnionSDK.4.8.516.min.jar ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── me │ │ └── imli │ │ └── newme │ │ └── ApplicationTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── me │ │ │ └── imli │ │ │ └── newme │ │ │ ├── Const.java │ │ │ ├── ImApp.java │ │ │ ├── Test.java │ │ │ ├── api │ │ │ ├── ApiConst.java │ │ │ ├── ApiConverter │ │ │ │ ├── ApiConverterFactory.java │ │ │ │ ├── ApiRequestBodyConverter.java │ │ │ │ └── ApiResponseBodyConverter.java │ │ │ ├── FirApi.java │ │ │ ├── JokeApi.java │ │ │ └── NewsApi.java │ │ │ ├── helper │ │ │ ├── MDTintHelper.java │ │ │ ├── RippleHelper.java │ │ │ ├── ThemeHelper.java │ │ │ ├── TypefaceHelper.java │ │ │ └── recycler │ │ │ │ ├── ItemTouchHelperAdapter.java │ │ │ │ ├── ItemTouchHelperViewHolder.java │ │ │ │ ├── OnStartDragListener.java │ │ │ │ └── SimpleItemTouchHelperCallback.java │ │ │ ├── http │ │ │ ├── ProgressHelper.java │ │ │ ├── ProgressModel.java │ │ │ ├── ProgressRequestBody.java │ │ │ ├── ProgressRequestListener.java │ │ │ ├── ProgressResponseBody.java │ │ │ ├── ProgressResponseListener.java │ │ │ ├── UIProgressRequestListener.java │ │ │ └── UIProgressResponseListener.java │ │ │ ├── listener │ │ │ ├── ApkDownloadListener.java │ │ │ ├── DownloadResultListener.java │ │ │ ├── GlideRequestListenerAdapter.java │ │ │ ├── SexSelectedListener.java │ │ │ └── SimpleTransitionListener.java │ │ │ ├── model │ │ │ ├── BaseModel.java │ │ │ ├── Channel.java │ │ │ ├── Image.java │ │ │ ├── Joke.java │ │ │ ├── News.java │ │ │ ├── Version.java │ │ │ └── Video.java │ │ │ ├── okhttp │ │ │ ├── OkHttpUtils.java │ │ │ ├── builder │ │ │ │ ├── GetBuilder.java │ │ │ │ ├── OkHttpRequestBuilder.java │ │ │ │ ├── PostFileBuilder.java │ │ │ │ ├── PostFormBuilder.java │ │ │ │ └── PostStringBuilder.java │ │ │ ├── callback │ │ │ │ ├── BitmapCallback.java │ │ │ │ ├── Callback.java │ │ │ │ ├── FileCallBack.java │ │ │ │ └── StringCallback.java │ │ │ ├── cookie │ │ │ │ ├── PersistentCookieStore.java │ │ │ │ └── SerializableHttpCookie.java │ │ │ ├── https │ │ │ │ └── HttpsUtils.java │ │ │ ├── request │ │ │ │ ├── CountingRequestBody.java │ │ │ │ ├── GetRequest.java │ │ │ │ ├── OkHttpRequest.java │ │ │ │ ├── PostFileRequest.java │ │ │ │ ├── PostFormRequest.java │ │ │ │ ├── PostStringRequest.java │ │ │ │ └── RequestCall.java │ │ │ └── utils │ │ │ │ ├── Exceptions.java │ │ │ │ ├── ImageUtils.java │ │ │ │ └── L.java │ │ │ ├── rx │ │ │ ├── RxCache.java │ │ │ ├── RxEndlessRecyclerView.java │ │ │ ├── RxFileInputStream.java │ │ │ ├── RxFiles.java │ │ │ ├── RxGlide.java │ │ │ ├── RxList.java │ │ │ ├── RxNetworking.java │ │ │ ├── RxOkHttp.java │ │ │ ├── RxWaiting.java │ │ │ ├── RxWallpaperManager.java │ │ │ └── bus │ │ │ │ ├── Helper.java │ │ │ │ ├── RxBus.java │ │ │ │ ├── RxIBus.java │ │ │ │ └── annotation │ │ │ │ └── BusReceiver.java │ │ │ ├── server │ │ │ └── DownloadServer.java │ │ │ ├── ui │ │ │ ├── AboutActivity.java │ │ │ ├── CustomNewsActivity.java │ │ │ ├── FeedbackActivity.java │ │ │ ├── MainActivity.java │ │ │ ├── SettingActivity.java │ │ │ ├── SplashActivity.java │ │ │ ├── ViewerActivity.java │ │ │ ├── WebActivity.java │ │ │ ├── ad │ │ │ │ ├── WBBannerADListener.java │ │ │ │ └── WBInterstitialADListener.java │ │ │ ├── adapter │ │ │ │ ├── ChannelCustomAdapter.java │ │ │ │ ├── ChannelPagerAdapter.java │ │ │ │ ├── JokeAdapter.java │ │ │ │ ├── MeiziAdapter.java │ │ │ │ ├── NewsAdapter.java │ │ │ │ ├── VideoAdapter.java │ │ │ │ └── ViewerAdapter.java │ │ │ ├── base │ │ │ │ ├── BaseActivity.java │ │ │ │ ├── BaseChanneFragment.java │ │ │ │ └── BaseFragment.java │ │ │ └── fragment │ │ │ │ ├── JokeFragment.java │ │ │ │ ├── MeiziFragment.java │ │ │ │ ├── NewsChannelFragment.java │ │ │ │ ├── NewsFragment.java │ │ │ │ ├── SettingFragment.java │ │ │ │ ├── VideoFragment.java │ │ │ │ └── ViewerFragment.java │ │ │ ├── utils │ │ │ ├── ActionUtils.java │ │ │ ├── ActivityUtils.java │ │ │ ├── ApkUtils.java │ │ │ ├── CacheUtils.java │ │ │ ├── DialogUtils.java │ │ │ ├── EnterTransitionCompatUtils.java │ │ │ ├── FileSizeUtil.java │ │ │ ├── ImmersiveUtil.java │ │ │ ├── LogUtils.java │ │ │ ├── MarketUtils.java │ │ │ ├── RegexValidateUtils.java │ │ │ ├── ScrollUtils.java │ │ │ ├── SexUtil.java │ │ │ ├── SharedPrefUtil.java │ │ │ ├── ThemeUtils.java │ │ │ ├── Utils.java │ │ │ ├── VersionUtil.java │ │ │ └── log │ │ │ │ ├── LogManager.java │ │ │ │ ├── Logger.java │ │ │ │ ├── LoggerDefault.java │ │ │ │ └── LoggingInterceptor.java │ │ │ └── widget │ │ │ ├── OhDrawerLayout.java │ │ │ ├── OhImageView.java │ │ │ ├── OhSwipeBackLayout.java │ │ │ ├── OhSwipeRefreshLayout.java │ │ │ ├── OhToolbar.java │ │ │ ├── OhWebView.java │ │ │ ├── StatusBarHolderView.java │ │ │ └── sb │ │ │ ├── ButtomView.java │ │ │ ├── DragPercent.java │ │ │ ├── SwipeBackLayout.java │ │ │ ├── SwipeLayout.java │ │ │ └── SwipeSwitchLayout.java │ └── res │ │ ├── anim │ │ ├── push_f_left_in.xml │ │ ├── push_f_left_out.xml │ │ ├── push_f_right_in.xml │ │ └── push_f_right_out.xml │ │ ├── color │ │ ├── color_secondary_inverse.xml │ │ ├── item_nav_blue_seletor.xml │ │ ├── item_nav_green_seletor.xml │ │ ├── item_nav_indigo_seletor.xml │ │ ├── item_nav_night_seletor.xml │ │ ├── item_nav_orange_seletor.xml │ │ ├── item_nav_pink_seletor.xml │ │ └── item_nav_red_seletor.xml │ │ ├── drawable-hdpi │ │ ├── ic_apps_grey_500_18dp.png │ │ ├── ic_brush_grey_500_18dp.png │ │ ├── ic_home_grey_500_18dp.png │ │ ├── ic_local_cafe_grey_500_18dp.png │ │ ├── ic_local_florist_grey_500_18dp.png │ │ ├── ic_play_arrow_grey_500_18dp.png │ │ ├── ic_send_white_18dp.png │ │ ├── ic_settings_grey_500_18dp.png │ │ ├── image_loading.9.png │ │ ├── image_progress.png │ │ └── video_item_play_icon.png │ │ ├── drawable-mdpi │ │ ├── ic_apps_grey_500_18dp.png │ │ ├── ic_brush_grey_500_18dp.png │ │ ├── ic_home_grey_500_18dp.png │ │ ├── ic_local_cafe_grey_500_18dp.png │ │ ├── ic_local_florist_grey_500_18dp.png │ │ ├── ic_play_arrow_grey_500_18dp.png │ │ ├── ic_send_white_18dp.png │ │ └── ic_settings_grey_500_18dp.png │ │ ├── drawable-xhdpi │ │ ├── ic_apps_grey_500_18dp.png │ │ ├── ic_brush_grey_500_18dp.png │ │ ├── ic_home_grey_500_18dp.png │ │ ├── ic_local_cafe_grey_500_18dp.png │ │ ├── ic_local_florist_grey_500_18dp.png │ │ ├── ic_play_arrow_grey_500_18dp.png │ │ ├── ic_send_white_18dp.png │ │ └── ic_settings_grey_500_18dp.png │ │ ├── drawable-xxhdpi │ │ ├── ic_apps_grey_500_18dp.png │ │ ├── ic_brush_grey_500_18dp.png │ │ ├── ic_home_grey_500_18dp.png │ │ ├── ic_local_cafe_grey_500_18dp.png │ │ ├── ic_local_florist_grey_500_18dp.png │ │ ├── ic_play_arrow_grey_500_18dp.png │ │ ├── ic_send_white_18dp.png │ │ └── ic_settings_grey_500_18dp.png │ │ ├── drawable │ │ ├── item_track.xml │ │ ├── loading_iamge_progress.xml │ │ ├── radio.xml │ │ └── viewer_header.xml │ │ ├── layout │ │ ├── activity_about.xml │ │ ├── activity_custom_news.xml │ │ ├── activity_feedback.xml │ │ ├── activity_main.xml │ │ ├── activity_setting.xml │ │ ├── activity_splash.xml │ │ ├── activity_viewer.xml │ │ ├── activity_web.xml │ │ ├── control_layer.xml │ │ ├── control_layer_horizon.xml │ │ ├── fragment_channel.xml │ │ ├── fragment_joke.xml │ │ ├── fragment_meizi.xml │ │ ├── fragment_news.xml │ │ ├── fragment_test.xml │ │ ├── fragment_video.xml │ │ ├── fragment_viewer.xml │ │ ├── item_channel_custom.xml │ │ ├── item_joke.xml │ │ ├── item_meizi.xml │ │ ├── item_news.xml │ │ ├── item_sex.xml │ │ ├── item_theme.xml │ │ ├── item_video.xml │ │ ├── item_video_test.xml │ │ ├── layout_toolbar.xml │ │ ├── nav_header_main.xml │ │ ├── video_layout.xml │ │ └── video_list_sport.xml │ │ ├── menu │ │ ├── activity_main_drawer.xml │ │ ├── feedback.xml │ │ ├── main.xml │ │ ├── viewer.xml │ │ └── web.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_refresh.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ ├── values │ │ ├── attrs.xml │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── preference.xml │ │ ├── strings.xml │ │ ├── styles.xml │ │ ├── themes.xml │ │ └── video_attrs.xml │ │ └── xml │ │ ├── setting.xml │ │ └── setting_test.xml │ └── test │ └── java │ └── me │ └── imli │ └── newme │ └── ExampleUnitTest.java ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle ├── videoplaycore ├── .gitignore ├── build.gradle ├── libs │ ├── armeabi-v7a │ │ └── libsinit.so │ ├── armeabi │ │ └── libsinit.so │ ├── mips │ │ └── libsinit.so │ └── x86 │ │ └── libsinit.so ├── proguard-rules.pro ├── src │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── sina │ │ │ └── sinavideo │ │ │ └── coreplayer │ │ │ └── ApplicationTest.java │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── sina │ │ │ │ └── sinavideo │ │ │ │ ├── coreplayer │ │ │ │ ├── Constants.java │ │ │ │ ├── ISinaMediaController.java │ │ │ │ ├── ISinaMediaPlayer.java │ │ │ │ ├── ISinaVideoView.java │ │ │ │ ├── SinaVideoFactory.java │ │ │ │ ├── splayer │ │ │ │ │ ├── CPU.java │ │ │ │ │ ├── ContextUtils.java │ │ │ │ │ ├── GLSurfaceView.java │ │ │ │ │ ├── IOUtils.java │ │ │ │ │ ├── MediaPlayer.java │ │ │ │ │ ├── SMedia.java │ │ │ │ │ ├── SPlayer.java │ │ │ │ │ ├── VideoView.java │ │ │ │ │ └── VideoViewHard.java │ │ │ │ ├── util │ │ │ │ │ ├── AndroidUtil.java │ │ │ │ │ ├── AnimationToast.java │ │ │ │ │ ├── FileLog.java │ │ │ │ │ ├── LogS.java │ │ │ │ │ └── StringUtils.java │ │ │ │ └── whitelist │ │ │ │ │ ├── VDDefinitionFilter.java │ │ │ │ │ ├── VDDeviceInfo.java │ │ │ │ │ ├── VDWhiteList.java │ │ │ │ │ └── VDWhiteListDB.java │ │ │ │ └── dlna │ │ │ │ └── SinaDLNA.java │ │ └── res │ │ │ ├── raw │ │ │ └── libsplayer.7z │ │ │ └── values │ │ │ └── strings.xml │ └── test │ │ └── java │ │ └── com │ │ └── sina │ │ └── sinavideo │ │ └── coreplayer │ │ └── ExampleUnitTest.java └── videoplaycore.iml └── videoplaysdk ├── .gitignore ├── build.gradle ├── proguard-rules.pro ├── src ├── androidTest │ └── java │ │ └── com │ │ └── sina │ │ └── video_playersdk │ │ └── ApplicationTest.java ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── sina │ │ │ └── sinavideo │ │ │ └── sdk │ │ │ ├── VDVideoADLayer.java │ │ │ ├── VDVideoConfig.java │ │ │ ├── VDVideoExtListeners.java │ │ │ ├── VDVideoView.java │ │ │ ├── VDVideoViewController.java │ │ │ ├── VDVideoViewLayer.java │ │ │ ├── VDVideoViewLayerContext.java │ │ │ ├── VDVideoViewLayerContextData.java │ │ │ ├── VDVideoViewListeners.java │ │ │ ├── container │ │ │ ├── VDVideoADBottomRelativeContainer.java │ │ │ ├── VDVideoADFrameContainer.java │ │ │ ├── VDVideoADGetMoreContainer.java │ │ │ ├── VDVideoADStepoutContainer.java │ │ │ ├── VDVideoControlBottomContainer.java │ │ │ ├── VDVideoControlBottomRelativeContainer.java │ │ │ ├── VDVideoControlContainer.java │ │ │ ├── VDVideoControlDefinitionContainer.java │ │ │ ├── VDVideoControlLightingContainer.java │ │ │ ├── VDVideoControlLoadingContainer.java │ │ │ ├── VDVideoControlPanelContainer.java │ │ │ ├── VDVideoControlProgressContainer.java │ │ │ ├── VDVideoControlRelativeContainer.java │ │ │ ├── VDVideoControlSoundContainer.java │ │ │ ├── VDVideoControlSoundSeekBarContainer.java │ │ │ ├── VDVideoControlTopContainer.java │ │ │ ├── VDVideoControlTopRelativeContainer.java │ │ │ ├── VDVideoOprationpanelContainer.java │ │ │ ├── VDVideoSimpleLinearContainer.java │ │ │ └── VDVideoTipsContainer.java │ │ │ ├── data │ │ │ ├── VDPlayerErrorInfo.java │ │ │ ├── VDPlayerInfo.java │ │ │ ├── VDResolutionData.java │ │ │ ├── VDVideoInfo.java │ │ │ └── VDVideoListInfo.java │ │ │ ├── dlna │ │ │ ├── DLNAButton.java │ │ │ ├── DLNACloseButton.java │ │ │ ├── DLNAController.java │ │ │ ├── DLNAEventListener.java │ │ │ ├── DLNALinearLayout.java │ │ │ ├── DLNAListLinearLayout.java │ │ │ ├── DLNAListView.java │ │ │ ├── DLNANameTextView.java │ │ │ ├── MRContent.java │ │ │ └── MRContentAdapter.java │ │ │ ├── utils │ │ │ ├── VDApplication.java │ │ │ ├── VDFileUtil.java │ │ │ ├── VDGravitySensorManager.java │ │ │ ├── VDLog.java │ │ │ ├── VDMobileUtil.java │ │ │ ├── VDNetworkBroadcastReceiver.java │ │ │ ├── VDPlayPauseHelper.java │ │ │ ├── VDPlayerLightingManager.java │ │ │ ├── VDPlayerSoundManager.java │ │ │ ├── VDResolutionManager.java │ │ │ ├── VDSDKConfig.java │ │ │ ├── VDSharedPreferencesUtil.java │ │ │ ├── VDUtility.java │ │ │ ├── VDVerticalSeekBar.java │ │ │ ├── VDVideoFullModeController.java │ │ │ ├── VDVideoScreenOrientation.java │ │ │ └── m3u8 │ │ │ │ ├── M3u8Content.java │ │ │ │ ├── M3u8ContentParser.java │ │ │ │ ├── M3u8ResolutionContent.java │ │ │ │ └── M3u8SegmentContent.java │ │ │ └── widgets │ │ │ ├── VDBaseWidget.java │ │ │ ├── VDVideoADSoundButton.java │ │ │ ├── VDVideoADTicker.java │ │ │ ├── VDVideoBackButton.java │ │ │ ├── VDVideoBottomColorBar.java │ │ │ ├── VDVideoDecodingButton.java │ │ │ ├── VDVideoDecodingView.java │ │ │ ├── VDVideoDefinitionLayout.java │ │ │ ├── VDVideoDefinitionTextView.java │ │ │ ├── VDVideoDescriptionTextView.java │ │ │ ├── VDVideoDoubleTapPlayView.java │ │ │ ├── VDVideoErrorLayout.java │ │ │ ├── VDVideoFullScreenButton.java │ │ │ ├── VDVideoIndicaterLayout.java │ │ │ ├── VDVideoLastTimeTextView.java │ │ │ ├── VDVideoLightingPercentView.java │ │ │ ├── VDVideoLightingSeekBar.java │ │ │ ├── VDVideoLoadingPercentView.java │ │ │ ├── VDVideoLoadingProgress.java │ │ │ ├── VDVideoLockScreenView.java │ │ │ ├── VDVideoMoreOprationButton.java │ │ │ ├── VDVideoPlayButton.java │ │ │ ├── VDVideoPlaySeekBar.java │ │ │ ├── VDVideoProgressIndicaterView.java │ │ │ ├── VDVideoResolutionButton.java │ │ │ ├── VDVideoResolutionList.java │ │ │ ├── VDVideoResolutionListButton.java │ │ │ ├── VDVideoSoundHorizontalSeekBar.java │ │ │ ├── VDVideoSoundSeekBar.java │ │ │ ├── VDVideoSoundSeekButton.java │ │ │ ├── VDVideoSoundSeekImageView.java │ │ │ ├── VDVideoSoundSeekPercentView.java │ │ │ ├── VDVideoTimeTextView.java │ │ │ ├── VDVideoTipLayout.java │ │ │ ├── VDVideoTitleTextView.java │ │ │ └── playlist │ │ │ ├── OnPlayListItemClick.java │ │ │ ├── VDPlayListScrollListener.java │ │ │ ├── VDVideoPlayGridView.java │ │ │ ├── VDVideoPlayListAdapter.java │ │ │ ├── VDVideoPlayListContainer.java │ │ │ ├── VDVideoPlayListGridItemTextView.java │ │ │ ├── VDVideoPlayListView.java │ │ │ ├── VDVideoPlaylistBase.java │ │ │ ├── VDVideoPlaylistTextView.java │ │ │ ├── VDVideoRelatedButton.java │ │ │ └── VDVideoRelatedTextView.java │ └── res │ │ ├── anim │ │ ├── down_to_up_translate.xml │ │ ├── down_to_up_translate2.xml │ │ ├── left_to_right_translate.xml │ │ ├── left_to_right_translate2.xml │ │ ├── right_to_left_translate.xml │ │ ├── right_to_left_translate2.xml │ │ ├── up_to_down_translate.xml │ │ ├── up_to_down_translate2.xml │ │ ├── video_list_fade_from_right.xml │ │ ├── video_list_from_right_in.xml │ │ └── zoom_out.xml │ │ ├── drawable-hdpi │ │ ├── ad_silent_normal.png │ │ ├── ad_silent_press.png │ │ ├── btn_retry_play.png │ │ ├── close_tip.png │ │ ├── decoding_setting.png │ │ ├── definition_select_bg.9.png │ │ ├── dlna_icon.png │ │ ├── dlna_list_bg.9.png │ │ ├── dlna_unable_icon.png │ │ ├── gestrue_brightness.png │ │ ├── ic_launcher.png │ │ ├── indicater_brightness.png │ │ ├── indicater_progress.png │ │ ├── indicater_sound.png │ │ ├── light_high.png │ │ ├── light_low.png │ │ ├── more.png │ │ ├── net_tip_icon.png │ │ ├── orientation_lock_close.png │ │ ├── orientation_lock_open.png │ │ ├── play_ctrl_back_bg.png │ │ ├── play_ctrl_back_press_bg.png │ │ ├── play_ctrl_bottom_bg.9.png │ │ ├── play_ctrl_fullscreen_bg.png │ │ ├── play_ctrl_fullscreen_press_bg.png │ │ ├── play_ctrl_pause_bg.png │ │ ├── play_ctrl_pause_press_bg.png │ │ ├── play_ctrl_play_bg.png │ │ ├── play_ctrl_play_press_bg.png │ │ ├── play_ctrl_seek_backward.png │ │ ├── play_ctrl_seek_forward.png │ │ ├── play_ctrl_sound_ball.png │ │ ├── play_ctrl_sound_gestrue.png │ │ ├── play_ctrl_sound_gestrue_silent.png │ │ ├── play_ctrl_title_bg.9.png │ │ ├── play_ctrl_video_list_bg.png │ │ ├── play_ctrl_video_list_item_bg.png │ │ ├── play_ctrl_video_list_press_bg.png │ │ ├── play_ctrl_volume_bg.png │ │ ├── play_ctrl_volume_press_bg.png │ │ ├── play_ctrl_volume_progressbar_bg.png │ │ ├── play_error_tip.png │ │ ├── play_seek_flag_bg.9.png │ │ ├── playbutton_default.png │ │ ├── playbutton_press.png │ │ ├── player_right_panel_bg.9.png │ │ ├── quality_bg_normal.png │ │ ├── quality_bg_press.png │ │ └── tvicon.png │ │ ├── drawable-mdpi │ │ └── ic_launcher.png │ │ ├── drawable-xhdpi │ │ ├── ad_silent_normal.png │ │ ├── ad_silent_press.png │ │ ├── btn_retry_play.png │ │ ├── close_tip.png │ │ ├── decoding_setting.png │ │ ├── dlna_icon.png │ │ ├── dlna_unable_icon.png │ │ ├── gestrue_brightness.png │ │ ├── ic_launcher.png │ │ ├── indicater_brightness.png │ │ ├── indicater_progress.png │ │ ├── indicater_sound.png │ │ ├── light_high.png │ │ ├── light_low.png │ │ ├── more.png │ │ ├── net_tip_icon.png │ │ ├── orientation_lock_close.png │ │ ├── orientation_lock_open.png │ │ ├── play_ctrl_back_bg.png │ │ ├── play_ctrl_back_press_bg.png │ │ ├── play_ctrl_fullscreen_bg.png │ │ ├── play_ctrl_fullscreen_press_bg.png │ │ ├── play_ctrl_pause_bg.png │ │ ├── play_ctrl_pause_press_bg.png │ │ ├── play_ctrl_seek_backward.png │ │ ├── play_ctrl_seek_forward.png │ │ ├── play_ctrl_sound_ball.png │ │ ├── play_ctrl_sound_gestrue.png │ │ ├── play_ctrl_sound_gestrue_silent.png │ │ ├── play_ctrl_video_list_bg.png │ │ ├── play_ctrl_video_list_item_bg.png │ │ ├── play_ctrl_video_list_press_bg.png │ │ ├── play_ctrl_volume_bg.png │ │ ├── play_ctrl_volume_press_bg.png │ │ ├── play_ctrl_volume_progressbar_bg.png │ │ ├── play_error_tip.png │ │ ├── quality_bg_normal.png │ │ ├── quality_bg_press.png │ │ └── tvicon.png │ │ ├── drawable-xxhdpi │ │ ├── ad_silent_normal.png │ │ ├── ad_silent_press.png │ │ ├── btn_retry_play.png │ │ ├── close_tip.png │ │ ├── decoding_setting.png │ │ ├── dlna_icon.png │ │ ├── dlna_unable_icon.png │ │ ├── gestrue_brightness.png │ │ ├── ic_launcher.png │ │ ├── indicater_brightness.png │ │ ├── indicater_progress.png │ │ ├── indicater_sound.png │ │ ├── light_high.png │ │ ├── light_low.png │ │ ├── more.png │ │ ├── net_tip_icon.png │ │ ├── orientation_lock_close.png │ │ ├── orientation_lock_open.png │ │ ├── play_ctrl_back_bg.png │ │ ├── play_ctrl_back_press_bg.png │ │ ├── play_ctrl_fullscreen_bg.png │ │ ├── play_ctrl_fullscreen_press_bg.png │ │ ├── play_ctrl_pause_bg.png │ │ ├── play_ctrl_pause_press_bg.png │ │ ├── play_ctrl_seek_backward.png │ │ ├── play_ctrl_seek_forward.png │ │ ├── play_ctrl_sound_ball.png │ │ ├── play_ctrl_sound_gestrue.png │ │ ├── play_ctrl_sound_gestrue_silent.png │ │ ├── play_ctrl_video_list_bg.png │ │ ├── play_ctrl_video_list_press_bg.png │ │ ├── play_ctrl_volume_bg.png │ │ ├── play_ctrl_volume_press_bg.png │ │ ├── play_error_tip.png │ │ ├── quality_bg_normal.png │ │ ├── quality_bg_press.png │ │ └── tvicon.png │ │ ├── drawable │ │ ├── ad_silent_selcetor.xml │ │ ├── pausebutton.xml │ │ ├── play_ctrl_back.xml │ │ ├── play_ctrl_fullscreen.xml │ │ ├── play_ctrl_pause.xml │ │ ├── play_ctrl_play.xml │ │ ├── play_ctrl_video_list.xml │ │ ├── play_ctrl_volume.xml │ │ ├── play_ctrl_volume_mute.xml │ │ ├── play_seekbar_background.xml │ │ ├── play_seekbar_color_bg.xml │ │ ├── play_soundseekbar_background.xml │ │ ├── playbutton.xml │ │ ├── quality_bg.xml │ │ └── resolution_textcolor.xml │ │ ├── layout │ │ ├── default_decodingtype_adapter.xml │ │ ├── dlna_connection_layout_include.xml │ │ ├── dlna_device_list_item.xml │ │ ├── dlna_list_layout_include.xml │ │ ├── indicater_layer_include.xml │ │ ├── tip_layout.xml │ │ └── video_play_error_layout.xml │ │ ├── raw │ │ └── config.properties │ │ └── values │ │ ├── attrs.xml │ │ ├── dimes.xml │ │ ├── ids.xml │ │ └── strings.xml └── test │ └── java │ └── com │ └── sina │ └── video_playersdk │ └── ExampleUnitTest.java └── videoplaysdk.iml /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | /local.properties 3 | /.idea/workspace.xml 4 | /.idea/libraries 5 | .DS_Store 6 | /build 7 | /captures -------------------------------------------------------------------------------- /.idea/.name: -------------------------------------------------------------------------------- 1 | NewsMe -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 20 | -------------------------------------------------------------------------------- /.idea/libraries/GDTUnionSDK_4_8_516_min.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/adapter_rxjava_2_0_0_beta2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/adapters_1_0_rc3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/analytics_5_6_4.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/appcompat_v7_23_1_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.idea/libraries/baseLibrary_1_0_rc3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/cardview_v7_23_1_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/compiler_1_0_rc3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/converter_gson_2_0_0_beta2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/converter_gson_4_0_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/data_binding_support_1_1_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/design_23_1_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.idea/libraries/glide_3_6_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/gson_2_3_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/haha_1_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/imagezoom_2_2_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/leakcanary_analyzer_1_3_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/leakcanary_android_1_3_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/leakcanary_watcher_1_3_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/library_1_0_rc3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/library_2_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/okhttp_2_5_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/okhttp_integration_1_3_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/okio_1_6_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/org_apache_http_legacy_android_23.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/pull_back_layout_1_0_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/recyclerview_v7_23_1_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.idea/libraries/retrofit_2_0_0_beta2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/rxandroid_1_0_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/rxbinding_0_2_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/rxbinding_appcompat_v7_0_2_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/rxbinding_design_0_2_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/rxbinding_recyclerview_v7_0_2_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/rxbinding_support_v4_0_2_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/rxjava_1_0_14.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/rxlifecycle_0_3_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/rxlifecycle_components_0_3_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/rxstore_4_0_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/support_annotations_23_1_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/support_v4_23_1_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /.idea/libraries/touch_image_view_1_0_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | 3 | sign.config -------------------------------------------------------------------------------- /app/libs/GDTUnionSDK.4.8.516.min.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/libs/GDTUnionSDK.4.8.516.min.jar -------------------------------------------------------------------------------- /app/src/androidTest/java/me/imli/newme/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/Const.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme; 2 | 3 | /** 4 | * Created by Em on 2015/12/2. 5 | */ 6 | public class Const { 7 | 8 | public static final String AD_APP_ID = "1105141354"; 9 | public static final String AD_B_ID = "9090803845838402"; 10 | public static final String AD_W_ID = "7050306885432416"; 11 | public static final String AD_S_ID = "9000103837881499"; 12 | 13 | public static final String DB_NAME = ".newme.db"; 14 | public static final String DB_NEWS_NAME = "me_news"; 15 | public static final String DB_JOKES_NAME = "me_jokes"; 16 | public static final String DB_NEWS_CHANNEL = "me_news_channel"; 17 | public static final String DB_NEWSME_VERSION = "me_version"; 18 | 19 | public static final String SHARE_PREFERENCES_NAME = ".newme.pre"; 20 | 21 | public static final String EX_DIRECTORY = "NewsMe"; 22 | public static final String EX_FILE_DIRECTORY = "NewsMe/file"; 23 | 24 | public static final String NEWSME_APK = "newsme.apk"; 25 | 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/api/ApiConst.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.api; 2 | 3 | /** 4 | * Created by Em on 2015/11/26. 5 | */ 6 | public class ApiConst { 7 | 8 | // ================= News Start ============================ 9 | // Base url 10 | public static final String BASE = "http://apis.baidu.com"; 11 | // News 12 | public static final String NEWS = "/showapi_open_bus/channel_news/search_news"; 13 | // ================= News End ================== 14 | 15 | 16 | // ================ Joke Start ========================== 17 | // Base Url 18 | public static final String JOKE_BASE = "http://www.yixiaoba.com"; 19 | // Joke image prefix 20 | public static final String JOKE_IMAGE_HEADER = "http://img.yixiaoba.com"; 21 | public static final String JOKE_JOKE = "/client.php?c=home"; 22 | // ================ Joke End ========================== 23 | 24 | // ================ Fir.me Start ========================== 25 | public static final String FIR_ME_ID = "5679109d00fc74165e00000c"; 26 | public static final String FIR_ME_TOKEN = "4ac3cb1e9637815b54f42d62f8f61ea6"; 27 | // Base Url 28 | public static final String FIR_BASE = "http://api.fir.im"; 29 | public static final String FIR_VERSION = "/apps/latest"; 30 | // ================ Fir.me End ========================== 31 | 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/api/ApiConverter/ApiResponseBodyConverter.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.api.ApiConverter; 2 | 3 | import com.google.gson.Gson; 4 | import com.squareup.okhttp.ResponseBody; 5 | 6 | import java.io.IOException; 7 | import java.lang.reflect.Type; 8 | 9 | import retrofit.Converter; 10 | 11 | /** 12 | * Created by Em on 2015/11/26. 13 | */ 14 | public class ApiResponseBodyConverter implements Converter { 15 | private final Gson gson; 16 | private final Type type; 17 | 18 | ApiResponseBodyConverter(Gson gson, Type type) { 19 | this.gson = gson; 20 | this.type = type; 21 | } 22 | 23 | @Override public T convert(ResponseBody value) throws IOException { 24 | String str = value.string(); 25 | try { 26 | int start = str.indexOf("\"pagebean\":") + "\"pagebean\":".length(); 27 | int end = str.indexOf(",\"ret_code\""); 28 | return gson.fromJson(str.substring(start, end), type); 29 | } finally { 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/api/FirApi.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.api; 2 | 3 | import me.imli.newme.model.Version; 4 | import retrofit.http.GET; 5 | import retrofit.http.Query; 6 | import rx.Observable; 7 | 8 | /** 9 | * Created by Em on 2015/12/22. 10 | */ 11 | public interface FirApi { 12 | 13 | @GET(ApiConst.FIR_VERSION + "/" + ApiConst.FIR_ME_ID) 14 | Observable latest(@Query("api_token") String token); 15 | 16 | 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/api/JokeApi.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.api; 2 | 3 | import rx.Observable; 4 | 5 | import me.imli.newme.model.Joke; 6 | import retrofit.http.GET; 7 | import retrofit.http.Query; 8 | 9 | 10 | /** 11 | * Created by Em on 2015/12/10. 12 | */ 13 | public interface JokeApi { 14 | 15 | @GET(ApiConst.JOKE_JOKE) 16 | Observable joke(@Query("a") String a, @Query("p") int page); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/api/NewsApi.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.api; 2 | 3 | import me.imli.newme.model.News; 4 | import retrofit.http.GET; 5 | import retrofit.http.Headers; 6 | import retrofit.http.Query; 7 | import rx.Observable; 8 | 9 | /** 10 | * Created by Em on 2015/11/26. 11 | */ 12 | public interface NewsApi { 13 | 14 | /** 15 | * 根据 ID 请求新闻列表 16 | * @param id 17 | * @return 18 | */ 19 | @Headers("apikey: 2c61a1cd1f64216e92f7da1603697bf7") 20 | @GET(ApiConst.NEWS) 21 | Observable queryNewsByID(@Query("channelId") String id, @Query("page") int page); 22 | 23 | /** 24 | * 根据 ChannelName (标题)请求新闻列表 25 | * @param title 26 | * @return 27 | */ 28 | @Headers("apikey: 2c61a1cd1f64216e92f7da1603697bf7") 29 | @GET(ApiConst.NEWS) 30 | Observable queryNewsByCName(@Query("channelName") String title, @Query("page") int page); 31 | 32 | /** 33 | * 根据 title (标题)请求新闻列表 34 | * @param title 35 | * @return 36 | */ 37 | @Headers("apikey: 2c61a1cd1f64216e92f7da1603697bf7") 38 | @GET(ApiConst.NEWS) 39 | Observable queryNewsByTitle(@Query("title") String title, @Query("page") int page); 40 | 41 | } 42 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/helper/RippleHelper.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.helper; 2 | 3 | import android.annotation.TargetApi; 4 | import android.content.res.ColorStateList; 5 | import android.graphics.drawable.Drawable; 6 | import android.graphics.drawable.RippleDrawable; 7 | import android.os.Build; 8 | import android.support.annotation.ColorInt; 9 | 10 | /** 11 | * @author Aidan Follestad (afollestad) 12 | */ 13 | @TargetApi(Build.VERSION_CODES.LOLLIPOP) 14 | public class RippleHelper { 15 | 16 | public static void applyColor(Drawable d, @ColorInt int color) { 17 | if (d instanceof RippleDrawable) 18 | ((RippleDrawable) d).setColor(ColorStateList.valueOf(color)); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/helper/recycler/OnStartDragListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Paul Burke 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package me.imli.newme.helper.recycler; 18 | 19 | import android.support.v7.widget.RecyclerView; 20 | 21 | /** 22 | * Listener for manual initiation of a drag. 23 | */ 24 | public interface OnStartDragListener { 25 | 26 | /** 27 | * Called when a view is requesting a start of a drag. 28 | * 29 | * @param viewHolder The holder of the view to drag. 30 | */ 31 | void onStartDrag(RecyclerView.ViewHolder viewHolder); 32 | 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/http/ProgressRequestListener.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.http; 2 | 3 | /** 4 | * 请求体进度回调接口,比如用于文件上传中 5 | * Created by Em on 2015/12/23. 6 | */ 7 | public interface ProgressRequestListener { 8 | void onRequestProgress(long bytesWritten, long contentLength, boolean done); 9 | } 10 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/http/ProgressResponseListener.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.http; 2 | 3 | /** 4 | * 响应体进度回调接口,比如用于文件下载中 5 | * Created by Em on 2015/12/23. 6 | */ 7 | public interface ProgressResponseListener { 8 | public void onResponseProgress(long bytesRead, long contentLength, boolean done); 9 | } 10 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/listener/ApkDownloadListener.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.listener; 2 | 3 | import java.io.File; 4 | 5 | /** 6 | * Created by Em on 2015/12/24. 7 | */ 8 | public interface ApkDownloadListener { 9 | 10 | public void onEnd(File file); 11 | 12 | } 13 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/listener/DownloadResultListener.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.listener; 2 | 3 | /** 4 | * Created by Em on 2015/12/23. 5 | */ 6 | public interface DownloadResultListener { 7 | 8 | /** 9 | * onStart 10 | */ 11 | public void onStart(); 12 | 13 | /** 14 | * onProgress 15 | * @param progress 16 | */ 17 | public void onProgress(int progress); 18 | 19 | /** 20 | * onEnd 21 | */ 22 | public void onEnd(); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/listener/GlideRequestListenerAdapter.java: -------------------------------------------------------------------------------- 1 | 2 | package me.imli.newme.listener; 3 | 4 | import com.bumptech.glide.request.RequestListener; 5 | import com.bumptech.glide.request.target.Target; 6 | 7 | /** 8 | * 9 | * @param 10 | * @param 11 | */ 12 | public class GlideRequestListenerAdapter implements RequestListener { 13 | 14 | @Override 15 | public boolean onException(Exception e, T model, Target target, boolean isFirstResource) { 16 | onComplete(); 17 | return false; 18 | } 19 | 20 | @Override 21 | public boolean onResourceReady(R resource, T model, Target target, 22 | boolean isFromMemoryCache, boolean isFirstResource) { 23 | onComplete(); 24 | onSuccess(resource); 25 | return false; 26 | } 27 | 28 | protected void onComplete() { 29 | } 30 | 31 | protected void onSuccess(R resource) { 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/listener/SexSelectedListener.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.listener; 2 | 3 | /** 4 | * Created by Em on 2015/12/28. 5 | */ 6 | public interface SexSelectedListener { 7 | public void onSelect(boolean select); 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/listener/SimpleTransitionListener.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.listener; 2 | 3 | import android.transition.Transition; 4 | 5 | /** 6 | * Created by Em on 2015/12/2. 7 | */ 8 | public class SimpleTransitionListener implements Transition.TransitionListener { 9 | @Override 10 | public void onTransitionStart(Transition transition) { 11 | 12 | } 13 | 14 | @Override 15 | public void onTransitionEnd(Transition transition) { 16 | 17 | } 18 | 19 | @Override 20 | public void onTransitionCancel(Transition transition) { 21 | 22 | } 23 | 24 | @Override 25 | public void onTransitionPause(Transition transition) { 26 | 27 | } 28 | 29 | @Override 30 | public void onTransitionResume(Transition transition) { 31 | 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/model/BaseModel.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.model; 2 | 3 | import com.google.gson.Gson; 4 | 5 | /** 6 | * Created by Em on 2015/11/26. 7 | */ 8 | public class BaseModel { 9 | 10 | public String toJson() { 11 | return new Gson().toJson(this); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/model/Version.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.model; 2 | 3 | /** 4 | * Created by Em on 2015/12/22. 5 | */ 6 | public class Version extends BaseModel { 7 | 8 | public String name; 9 | public String version; 10 | public String changelog; 11 | public int updated_at; 12 | public String versionShort; 13 | public String build; 14 | public String installUrl; 15 | public String install_url; 16 | public String direct_install_url; 17 | public String update_url; 18 | public BinaryEntity binary; 19 | 20 | public static class BinaryEntity { 21 | /** 22 | * fsize : 2640412 23 | */ 24 | 25 | public int fsize; 26 | 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/model/Video.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.model; 2 | 3 | /** 4 | * Created by Em on 2016/1/4. 5 | */ 6 | public class Video extends BaseModel { 7 | public String id; 8 | public String title; 9 | public String img; 10 | public String url; 11 | public boolean isShow; 12 | 13 | public Video(String title, String img, String url) { 14 | this("0", title, img, url); 15 | } 16 | 17 | public Video(String id, String title, String img, String url) { 18 | this.id = id; 19 | this.title = title; 20 | this.img = img; 21 | this.url = url; 22 | this.isShow = false; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/okhttp/builder/OkHttpRequestBuilder.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.okhttp.builder; 2 | 3 | import java.util.Map; 4 | 5 | import me.imli.newme.okhttp.request.RequestCall; 6 | 7 | /** 8 | * Created by zhy on 15/12/14. 9 | */ 10 | public abstract class OkHttpRequestBuilder 11 | { 12 | protected String url; 13 | protected Object tag; 14 | protected Map headers; 15 | protected Map params; 16 | 17 | public abstract OkHttpRequestBuilder url(String url); 18 | 19 | public abstract OkHttpRequestBuilder tag(Object tag); 20 | 21 | public abstract OkHttpRequestBuilder params(Map params); 22 | 23 | public abstract OkHttpRequestBuilder addParams(String key, String val); 24 | 25 | public abstract OkHttpRequestBuilder headers(Map headers); 26 | 27 | public abstract OkHttpRequestBuilder addHeader(String key, String val); 28 | 29 | public abstract RequestCall build(); 30 | 31 | 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/okhttp/callback/BitmapCallback.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.okhttp.callback; 2 | 3 | import android.graphics.Bitmap; 4 | import android.graphics.BitmapFactory; 5 | 6 | import com.squareup.okhttp.Response; 7 | 8 | import java.io.IOException; 9 | 10 | /** 11 | * Created by zhy on 15/12/14. 12 | */ 13 | public abstract class BitmapCallback extends Callback 14 | { 15 | @Override 16 | public Bitmap parseNetworkResponse(Response response) throws IOException 17 | { 18 | return BitmapFactory.decodeStream(response.body().byteStream()); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/okhttp/callback/StringCallback.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.okhttp.callback; 2 | 3 | import com.squareup.okhttp.Response; 4 | 5 | import java.io.IOException; 6 | 7 | /** 8 | * Created by zhy on 15/12/14. 9 | */ 10 | public abstract class StringCallback extends Callback 11 | { 12 | @Override 13 | public String parseNetworkResponse(Response response) throws IOException 14 | { 15 | return response.body().string(); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/okhttp/request/GetRequest.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.okhttp.request; 2 | 3 | import com.squareup.okhttp.Request; 4 | import com.squareup.okhttp.RequestBody; 5 | 6 | import java.util.Map; 7 | 8 | /** 9 | * Created by zhy on 15/12/14. 10 | */ 11 | public class GetRequest extends OkHttpRequest 12 | { 13 | public GetRequest(String url, Object tag, Map params, Map headers) 14 | { 15 | super(url, tag, params, headers); 16 | } 17 | 18 | @Override 19 | protected RequestBody buildRequestBody() 20 | { 21 | return null; 22 | } 23 | 24 | @Override 25 | protected Request buildRequest(Request.Builder builder, RequestBody requestBody) 26 | { 27 | return builder.get().build(); 28 | } 29 | 30 | 31 | 32 | 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/okhttp/utils/Exceptions.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.okhttp.utils; 2 | 3 | /** 4 | * Created by zhy on 15/12/14. 5 | */ 6 | public class Exceptions 7 | { 8 | public static void illegalArgument(String msg) 9 | { 10 | throw new IllegalArgumentException(msg); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/okhttp/utils/L.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.okhttp.utils; 2 | 3 | import android.util.Log; 4 | 5 | /** 6 | * Created by zhy on 15/11/6. 7 | */ 8 | public class L 9 | { 10 | private static boolean debug = false; 11 | 12 | public static void e(String msg) 13 | { 14 | if (debug) 15 | { 16 | Log.e("OkHttp", msg); 17 | } 18 | } 19 | 20 | } 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/rx/RxCache.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.rx; 2 | 3 | import android.content.Context; 4 | 5 | import me.imli.newme.utils.CacheUtils; 6 | import me.imli.newme.utils.FileSizeUtil; 7 | import rx.Observable; 8 | 9 | /** 10 | * Created by Em on 2015/12/22. 11 | */ 12 | public class RxCache { 13 | 14 | public static Observable getCacheSize(Context context) { 15 | return Observable.defer(() -> { 16 | try { 17 | return Observable.just(FileSizeUtil.formetFileSize(CacheUtils.getCacheSize(context))); 18 | } catch (Exception e) { 19 | return Observable.error(e); 20 | } 21 | }); 22 | } 23 | 24 | public static Observable clearCache(Context context) { 25 | return Observable.defer(() -> { 26 | try { 27 | return Observable.just(FileSizeUtil.formetFileSize(CacheUtils.clearCache(context))); 28 | } catch (Exception e) { 29 | return Observable.error(e); 30 | } 31 | }); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/rx/RxFileInputStream.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.rx; 2 | 3 | import java.io.File; 4 | import java.io.FileInputStream; 5 | 6 | import rx.Observable; 7 | 8 | /** 9 | * Created by Em on 2015/12/2. 10 | */ 11 | public class RxFileInputStream { 12 | 13 | public static Observable create(File file) { 14 | return Observable.defer(() -> { 15 | try { 16 | return Observable.just(new FileInputStream(file)); 17 | } catch (Exception e) { 18 | return Observable.error(e); 19 | } 20 | }); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/rx/RxGlide.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.rx; 2 | 3 | import com.bumptech.glide.RequestManager; 4 | import com.bumptech.glide.request.target.Target; 5 | 6 | import java.io.File; 7 | 8 | import rx.Observable; 9 | 10 | /** 11 | * Created by Em on 2015/11/27. 12 | */ 13 | public class RxGlide { 14 | 15 | public static Observable download(RequestManager rm, String url) { 16 | return download(rm, url, Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL); 17 | } 18 | 19 | public static Observable download(RequestManager rm, String url, int width, int height) { 20 | return Observable.defer(() -> { 21 | try { 22 | return Observable.just(rm.load(url).downloadOnly(width, height).get()); 23 | } catch (Exception e) { 24 | return Observable.error(e); 25 | } 26 | }); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/rx/RxNetworking.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.rx; 2 | 3 | import android.support.v4.widget.SwipeRefreshLayout; 4 | 5 | import rx.Observable; 6 | 7 | /** 8 | * Created by Em on 2015/11/27. 9 | */ 10 | public class RxNetworking { 11 | 12 | public static Observable.Transformer bindRefreshing(SwipeRefreshLayout indicator) { 13 | return observable -> observable 14 | .doOnSubscribe(() -> indicator.post(() -> indicator.setRefreshing(true))) 15 | .doOnError(e -> indicator.post(() -> indicator.setRefreshing(false))) 16 | .doOnCompleted(() -> indicator.post(() -> indicator.setRefreshing(false))); 17 | } 18 | 19 | 20 | } 21 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/rx/RxWaiting.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.rx; 2 | 3 | import android.app.Dialog; 4 | 5 | import rx.Observable; 6 | 7 | /** 8 | * Created by Em on 2015/12/22. 9 | */ 10 | public class RxWaiting { 11 | 12 | // public static Observable.Transformer bindRefreshing(SwipeRefreshLayout indicator) { 13 | // return observable -> observable 14 | // .doOnSubscribe(() -> indicator.post(() -> indicator.setRefreshing(true))) 15 | // .doOnError(e -> indicator.post(() -> indicator.setRefreshing(false))) 16 | // .doOnCompleted(() -> indicator.post(() -> indicator.setRefreshing(false))); 17 | // } 18 | 19 | public static Observable.TransformerbindWaiting(Dialog dialog) { 20 | return observable -> observable 21 | .doOnSubscribe(() -> dialog.show()) 22 | .doOnCompleted(() -> dialog.dismiss()); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/rx/RxWallpaperManager.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.rx; 2 | 3 | import android.app.WallpaperManager; 4 | import android.content.Context; 5 | 6 | import java.io.IOException; 7 | import java.io.InputStream; 8 | 9 | import rx.Observable; 10 | 11 | /** 12 | * Created by Em on 2015/12/2. 13 | */ 14 | public class RxWallpaperManager { 15 | 16 | public static Observable setStream(Context context, InputStream stream) { 17 | return Observable.defer(() -> { 18 | try { 19 | WallpaperManager.getInstance(context).setStream(stream); 20 | return Observable.just(null); 21 | } catch (IOException e) { 22 | return Observable.error(e); 23 | } 24 | }); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/rx/bus/Helper.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.rx.bus; 2 | 3 | import java.lang.annotation.Annotation; 4 | import java.lang.reflect.Method; 5 | import java.lang.reflect.Modifier; 6 | import java.util.ArrayList; 7 | import java.util.List; 8 | 9 | /** 10 | * Created by Em on 2015/11/27. 11 | */ 12 | public class Helper { 13 | 14 | public static List findAnnotatedMethods(final Class type, final Class annotation) { 15 | final List methods = new ArrayList<>(); 16 | Method[] ms = type.getDeclaredMethods(); 17 | for (Method method : ms) { 18 | // Must not static 19 | if (Modifier.isStatic(method.getModifiers())) { 20 | continue; 21 | } 22 | // Must be public 23 | if (Modifier.isPublic(method.getModifiers())) { 24 | continue; 25 | } 26 | // Must has only one parameter 27 | if (method.getParameterTypes().length != 1) { 28 | continue; 29 | } 30 | // Must has annotation 31 | if (!method.isAnnotationPresent(annotation)) { 32 | continue; 33 | } 34 | methods.add(method); 35 | } 36 | return methods; 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/rx/bus/RxIBus.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.rx.bus; 2 | 3 | /** 4 | * Created by Em on 2015/11/27. 5 | */ 6 | public interface RxIBus { 7 | 8 | 9 | /** 10 | * Register an event target 11 | * 12 | * @param target 13 | * @return 14 | */ 15 | boolean register(Object target); 16 | 17 | /** 18 | * UnRegister the event target 19 | * 20 | * @param target 21 | * @return 22 | */ 23 | boolean unregister(Object target); 24 | 25 | /** 26 | * Post event 27 | * 28 | * @param event 29 | */ 30 | void post(Object event); 31 | 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/rx/bus/annotation/BusReceiver.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.rx.bus.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * Created by Em on 2015/11/27. 10 | */ 11 | @Target(ElementType.METHOD)//表示这个注解适用于方法 12 | @Retention(RetentionPolicy.RUNTIME)//表示这个注解需要保留到运行时 13 | public @interface BusReceiver { 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/ui/ad/WBBannerADListener.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.ui.ad; 2 | 3 | import com.qq.e.ads.banner.BannerADListener; 4 | 5 | import me.imli.newme.utils.LogUtils; 6 | 7 | 8 | /** 9 | * Created by Em on 2016/1/26. 10 | */ 11 | public class WBBannerADListener implements BannerADListener { 12 | 13 | private static final String TAG = "WBBannerADListener"; 14 | 15 | @Override 16 | public void onNoAD(int i) { 17 | LogUtils.d(TAG, "The ad is onNoAD! error code: " + i); 18 | } 19 | 20 | @Override 21 | public void onADReceiv() { 22 | LogUtils.d(TAG, "The ad is onADReceiv!"); 23 | } 24 | 25 | @Override 26 | public void onADExposure() { 27 | LogUtils.d(TAG, "The ad is onADExposure!"); 28 | } 29 | 30 | @Override 31 | public void onADClosed() { 32 | LogUtils.d(TAG, "The ad is onADClosed!"); 33 | } 34 | 35 | @Override 36 | public void onADClicked() { 37 | LogUtils.d(TAG, "The ad is onADClicked!"); 38 | } 39 | 40 | @Override 41 | public void onADLeftApplication() { 42 | LogUtils.d(TAG, "The ad is onADLeftApplication!"); 43 | } 44 | 45 | @Override 46 | public void onADOpenOverlay() { 47 | LogUtils.d(TAG, "The ad is onADOpenOverlay!"); 48 | } 49 | 50 | @Override 51 | public void onADCloseOverlay() { 52 | LogUtils.d(TAG, "The ad is onADCloseOverlay!"); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/ui/ad/WBInterstitialADListener.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.ui.ad; 2 | 3 | import com.qq.e.ads.interstitial.AbstractInterstitialADListener; 4 | 5 | import me.imli.newme.utils.LogUtils; 6 | 7 | 8 | /** 9 | * Created by Em on 2016/1/21. 10 | */ 11 | public class WBInterstitialADListener extends AbstractInterstitialADListener { 12 | 13 | private static final String TAG = "WBInterstitialADListener"; 14 | 15 | @Override 16 | public void onADClicked() { 17 | super.onADClicked(); 18 | LogUtils.d(TAG, "The ad is clicked!"); 19 | } 20 | 21 | @Override 22 | public void onADReceive() { 23 | LogUtils.i(TAG, "The ad load success!"); 24 | } 25 | 26 | @Override 27 | public void onNoAD(int i) { 28 | LogUtils.w(TAG, "The ad load error, error_code: " + i); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/ui/adapter/ViewerAdapter.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.ui.adapter; 2 | 3 | import android.content.Context; 4 | import android.support.v4.app.Fragment; 5 | import android.support.v4.app.FragmentManager; 6 | import android.support.v4.app.FragmentStatePagerAdapter; 7 | 8 | import me.imli.newme.model.Image; 9 | import me.imli.newme.ui.fragment.ViewerFragment; 10 | 11 | /** 12 | * Created by Em on 2015/12/2. 13 | */ 14 | public class ViewerAdapter extends FragmentStatePagerAdapter { 15 | 16 | private Context mContext; 17 | private Image[] mImages; 18 | 19 | public ViewerAdapter(FragmentManager fm, Context context, Image[] images) { 20 | super(fm); 21 | this.mImages = images; 22 | this.mContext = context; 23 | } 24 | 25 | @Override 26 | public Fragment getItem(int position) { 27 | Image image = mImages[position]; 28 | return ViewerFragment.newInstance(image, image.url); 29 | } 30 | 31 | @Override 32 | public int getCount() { 33 | return mImages.length; 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/utils/ActionUtils.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.utils; 2 | 3 | /** 4 | * Created by Em on 2015/12/23. 5 | */ 6 | public class ActionUtils { 7 | 8 | public void actionDownload() { 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/utils/ActivityUtils.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.utils; 2 | 3 | import android.app.Activity; 4 | 5 | import java.util.ArrayList; 6 | import java.util.List; 7 | 8 | /** 9 | * Created by Em on 2015/11/26. 10 | */ 11 | public class ActivityUtils { 12 | /** 13 | * 14 | */ 15 | private static List mActivityList = new ArrayList(); 16 | 17 | /** 18 | * 添加到 activity 到列表中 19 | * @param activity 20 | */ 21 | public static void add(Activity activity) { 22 | mActivityList.add(activity); 23 | } 24 | 25 | /** 26 | * 从列表中删除 activity 27 | * @param activity 28 | */ 29 | public static void remove(Activity activity) { 30 | mActivityList.remove(activity); 31 | } 32 | 33 | /** 34 | * finish 所有的存活的Activity 35 | * 并杀死应用进程 36 | */ 37 | public static void finishKill() { 38 | finishAll(); 39 | android.os.Process.killProcess(android.os.Process.myPid()); 40 | } 41 | 42 | /** 43 | * finish 所有的存活的Activity 44 | */ 45 | public static void finishAll() { 46 | for (Activity activity : mActivityList) { 47 | activity.finish(); 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/utils/EnterTransitionCompatUtils.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.utils; 2 | 3 | import android.os.Build; 4 | import android.transition.Transition; 5 | import android.view.Window; 6 | 7 | /** 8 | * Created by Em on 2015/12/3. 9 | */ 10 | public class EnterTransitionCompatUtils { 11 | 12 | public static void addListener(Window window, Transition.TransitionListener listener) { 13 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 14 | window.getEnterTransition().addListener(listener); 15 | } 16 | } 17 | 18 | public static void removeListener(Window window, Transition.TransitionListener listener) { 19 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 20 | window.getEnterTransition().removeListener(listener); 21 | } 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/utils/ImmersiveUtil.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.utils; 2 | 3 | import android.view.View; 4 | 5 | /** 6 | * Created by Em on 2015/12/2. 7 | */ 8 | public class ImmersiveUtil { 9 | private static final int SYSTEM_UI_IMMERSIVE = View.SYSTEM_UI_FLAG_IMMERSIVE | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN; 10 | 11 | public static void enter(View view) { 12 | view.setSystemUiVisibility(view.getSystemUiVisibility() | SYSTEM_UI_IMMERSIVE); 13 | } 14 | 15 | public static void exit(View view) { 16 | view.setSystemUiVisibility(view.getSystemUiVisibility() & (~SYSTEM_UI_IMMERSIVE)); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/utils/ScrollUtils.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.utils; 2 | 3 | import android.os.Build; 4 | import android.widget.AbsListView; 5 | 6 | /** 7 | * Created by Em on 2015/12/1. 8 | */ 9 | public class ScrollUtils { 10 | /** 11 | * 滚动列表到顶端 12 | * 13 | * @param listView 14 | */ 15 | public static void smoothScrollListViewToTop(final AbsListView listView) { 16 | if (listView == null) { 17 | return; 18 | } 19 | smoothScrollListView(listView, 0); 20 | listView.postDelayed(new Runnable() { 21 | @Override 22 | public void run() { 23 | listView.setSelection(0); 24 | } 25 | }, 200); 26 | } 27 | 28 | /** 29 | * 滚动列表到position 30 | * 31 | * @param listView 32 | * @param position 33 | */ 34 | public static void smoothScrollListView(AbsListView listView, int position) { 35 | if (Build.VERSION.SDK_INT > 7) { 36 | listView.smoothScrollToPositionFromTop(0, 0); 37 | } else { 38 | listView.setSelection(position); 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/utils/VersionUtil.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.utils; 2 | 3 | import android.os.Build; 4 | 5 | /** 6 | * 7 | * @author Em 8 | * 9 | */ 10 | public class VersionUtil { 11 | public static final boolean IS_JBMR2 = Build.VERSION.SDK_INT == Build.VERSION_CODES.JELLY_BEAN_MR2; 12 | public static final boolean IS_ISC = Build.VERSION.SDK_INT == Build.VERSION_CODES.ICE_CREAM_SANDWICH; 13 | public static final boolean IS_GINGERBREAD_MR1 = Build.VERSION.SDK_INT == Build.VERSION_CODES.GINGERBREAD_MR1; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/utils/log/LogManager.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright 2011, 2012 Chris Banes. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | *******************************************************************************/ 16 | package me.imli.newme.utils.log; 17 | 18 | import android.util.Log; 19 | 20 | /** 21 | * class that holds the {@link Logger} for this library, defaults to {@link LoggerDefault} to send logs to android {@link Log} 22 | */ 23 | public final class LogManager { 24 | 25 | private static Logger logger = new LoggerDefault(); 26 | 27 | public static void setLogger(Logger newLogger) { 28 | logger = newLogger; 29 | } 30 | 31 | public static Logger getLogger() { 32 | return logger; 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/utils/log/LoggingInterceptor.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.utils.log; 2 | 3 | import android.util.Log; 4 | 5 | import com.squareup.okhttp.Interceptor; 6 | import com.squareup.okhttp.Request; 7 | import com.squareup.okhttp.Response; 8 | 9 | import java.io.IOException; 10 | 11 | /** 12 | * Created by Em on 2015/11/27. 13 | */ 14 | public class LoggingInterceptor implements Interceptor { 15 | 16 | private static final String TAG = "OkHttp"; 17 | 18 | @Override 19 | public Response intercept(Chain chain) throws IOException { 20 | Request request = chain.request(); 21 | Log.d(TAG, String.format("%s\n%s", request, request.headers())); 22 | Response response = chain.proceed(request); 23 | Log.d(TAG, String.format("%s\n%s", response, response.headers())); 24 | return response; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/widget/OhDrawerLayout.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.widget; 2 | 3 | import android.content.Context; 4 | import android.os.Build; 5 | import android.support.v4.widget.DrawerLayout; 6 | import android.util.AttributeSet; 7 | 8 | /** 9 | * Created by Em on 2015/12/25. 10 | */ 11 | public class OhDrawerLayout extends DrawerLayout { 12 | public OhDrawerLayout(Context context) { 13 | this(context, null); 14 | } 15 | 16 | public OhDrawerLayout(Context context, AttributeSet attrs) { 17 | this(context, attrs, 0); 18 | } 19 | 20 | public OhDrawerLayout(Context context, AttributeSet attrs, int defStyle) { 21 | super(context, attrs, defStyle); 22 | this.init(); 23 | } 24 | 25 | private void init() { 26 | if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) { 27 | setFitsSystemWindows(true); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/widget/OhSwipeBackLayout.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.widget; 2 | 3 | import android.content.Context; 4 | import android.util.AttributeSet; 5 | 6 | import me.imli.newme.R; 7 | import me.imli.newme.helper.ThemeHelper; 8 | import me.imli.newme.widget.sb.SwipeBackLayout; 9 | 10 | /** 11 | * Created by Em on 2015/12/18. 12 | */ 13 | public class OhSwipeBackLayout extends SwipeBackLayout { 14 | public OhSwipeBackLayout(Context context) { 15 | this(context, null); 16 | } 17 | 18 | public OhSwipeBackLayout(Context context, AttributeSet attrs) { 19 | this(context, attrs, 0); 20 | } 21 | 22 | public OhSwipeBackLayout(Context context, AttributeSet attrs, int defStyle) { 23 | super(context, attrs, defStyle); 24 | this.init(); 25 | } 26 | 27 | private void init() { 28 | int color = ThemeHelper.resolveColor(this.getContext(), R.attr.colorPrimaryDark, 0xff00ff); 29 | setButtomColor(color); 30 | setBackText(getContext().getString(R.string.swipe_back_tip)); 31 | } 32 | 33 | @Override 34 | protected void stop(int dir) { 35 | super.stop(dir); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/widget/OhSwipeRefreshLayout.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.widget; 2 | 3 | import android.content.Context; 4 | import android.support.v4.widget.SwipeRefreshLayout; 5 | import android.util.AttributeSet; 6 | import android.util.TypedValue; 7 | 8 | import me.imli.newme.R; 9 | import me.imli.newme.utils.ThemeUtils; 10 | 11 | /** 12 | * Created by Em on 2015/12/14. 13 | */ 14 | public class OhSwipeRefreshLayout extends SwipeRefreshLayout { 15 | public OhSwipeRefreshLayout(Context context) { 16 | this(context, null); 17 | } 18 | 19 | public OhSwipeRefreshLayout(Context context, AttributeSet attrs) { 20 | super(context, attrs); 21 | 22 | TypedValue colorAccent = new TypedValue(); 23 | getContext().getTheme().resolveAttribute(R.attr.colorAccent, colorAccent, true); 24 | setColorSchemeResources(colorAccent.resourceId); 25 | 26 | // 设置圆的样式 27 | if (ThemeUtils.getTheme(getContext()).tag.equals("dark")) { 28 | setProgressBackgroundColor(R.color.black_primary_light); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/widget/OhToolbar.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.widget; 2 | 3 | import android.content.Context; 4 | import android.support.v7.widget.Toolbar; 5 | import android.util.AttributeSet; 6 | 7 | 8 | /** 9 | * Created by Em on 2015/12/2. 10 | */ 11 | public class OhToolbar extends Toolbar { 12 | 13 | public OhToolbar(Context context) { 14 | super(context); 15 | } 16 | 17 | public OhToolbar(Context context, AttributeSet attrs) { 18 | super(context, attrs); 19 | } 20 | 21 | public OhToolbar(Context context, AttributeSet attrs, int defStyleAttr) { 22 | super(context, attrs, defStyleAttr); 23 | } 24 | 25 | public void fadeIn() { 26 | animate().alpha(1).start(); 27 | } 28 | 29 | public void fadeOut() { 30 | animate().alpha(0).start(); 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/widget/OhWebView.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.widget; 2 | 3 | import android.annotation.TargetApi; 4 | import android.content.Context; 5 | import android.os.Build; 6 | import android.util.AttributeSet; 7 | import android.webkit.WebView; 8 | 9 | /** 10 | * Created by Em on 2015/12/28. 11 | */ 12 | public class OhWebView extends WebView { 13 | public OhWebView(Context context) { 14 | super(context); 15 | } 16 | 17 | public OhWebView(Context context, AttributeSet attrs) { 18 | super(context, attrs); 19 | } 20 | 21 | public OhWebView(Context context, AttributeSet attrs, int defStyleAttr) { 22 | super(context, attrs, defStyleAttr); 23 | } 24 | 25 | @TargetApi(Build.VERSION_CODES.LOLLIPOP) 26 | public OhWebView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { 27 | super(context, attrs, defStyleAttr, defStyleRes); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/widget/sb/DragPercent.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.widget.sb; 2 | 3 | /** 4 | * 拖动的百分比 5 | * @author Doots 6 | * 7 | */ 8 | public interface DragPercent { 9 | 10 | public void dragPercent(int percent); 11 | 12 | } 13 | -------------------------------------------------------------------------------- /app/src/main/java/me/imli/newme/widget/sb/SwipeBackLayout.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme.widget.sb; 2 | 3 | import android.content.Context; 4 | import android.util.AttributeSet; 5 | 6 | public class SwipeBackLayout extends SwipeLayout { 7 | 8 | protected final static String TAG = "SwipeBackLayout"; 9 | 10 | 11 | public SwipeBackLayout(Context context) { 12 | this(context, null); 13 | } 14 | 15 | public SwipeBackLayout(Context context, AttributeSet attrs) { 16 | this(context, attrs, 0); 17 | } 18 | 19 | public SwipeBackLayout(Context context, AttributeSet attrs, int defStyle) { 20 | super(context, attrs, defStyle); 21 | } 22 | 23 | /** 24 | * 设置返回提示文字 25 | * @param text 26 | */ 27 | public void setBackText(String text) { 28 | mButtomView.setTipText(text); 29 | } 30 | 31 | @Override 32 | protected void onFinishInflate() { 33 | super.onFinishInflate(); 34 | 35 | } 36 | 37 | @Override 38 | protected void stop(int dir) { 39 | super.stop(dir); 40 | if (mOnSwipeBackListener != null) { 41 | mOnSwipeBackListener.onBack(); 42 | } 43 | } 44 | 45 | private OnSwipeBackListener mOnSwipeBackListener; 46 | public void setOnSwipeBackListener(OnSwipeBackListener listener) { 47 | mOnSwipeBackListener = listener; 48 | } 49 | 50 | /** 51 | * 52 | * @author Doots 53 | * 54 | */ 55 | public interface OnSwipeBackListener { 56 | /** 返回 */ 57 | public void onBack(); 58 | } 59 | 60 | } 61 | -------------------------------------------------------------------------------- /app/src/main/res/anim/push_f_left_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/anim/push_f_left_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/anim/push_f_right_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/anim/push_f_right_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/color/color_secondary_inverse.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/color/item_nav_blue_seletor.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/color/item_nav_green_seletor.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/color/item_nav_indigo_seletor.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/color/item_nav_night_seletor.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/color/item_nav_orange_seletor.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/color/item_nav_pink_seletor.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/color/item_nav_red_seletor.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_apps_grey_500_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-hdpi/ic_apps_grey_500_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_brush_grey_500_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-hdpi/ic_brush_grey_500_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_home_grey_500_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-hdpi/ic_home_grey_500_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_local_cafe_grey_500_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-hdpi/ic_local_cafe_grey_500_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_local_florist_grey_500_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-hdpi/ic_local_florist_grey_500_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_play_arrow_grey_500_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-hdpi/ic_play_arrow_grey_500_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_send_white_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-hdpi/ic_send_white_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_settings_grey_500_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-hdpi/ic_settings_grey_500_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/image_loading.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-hdpi/image_loading.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/image_progress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-hdpi/image_progress.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/video_item_play_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-hdpi/video_item_play_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_apps_grey_500_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-mdpi/ic_apps_grey_500_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_brush_grey_500_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-mdpi/ic_brush_grey_500_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_home_grey_500_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-mdpi/ic_home_grey_500_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_local_cafe_grey_500_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-mdpi/ic_local_cafe_grey_500_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_local_florist_grey_500_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-mdpi/ic_local_florist_grey_500_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_play_arrow_grey_500_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-mdpi/ic_play_arrow_grey_500_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_send_white_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-mdpi/ic_send_white_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_settings_grey_500_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-mdpi/ic_settings_grey_500_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_apps_grey_500_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-xhdpi/ic_apps_grey_500_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_brush_grey_500_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-xhdpi/ic_brush_grey_500_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_home_grey_500_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-xhdpi/ic_home_grey_500_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_local_cafe_grey_500_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-xhdpi/ic_local_cafe_grey_500_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_local_florist_grey_500_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-xhdpi/ic_local_florist_grey_500_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_play_arrow_grey_500_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-xhdpi/ic_play_arrow_grey_500_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_send_white_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-xhdpi/ic_send_white_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_settings_grey_500_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-xhdpi/ic_settings_grey_500_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_apps_grey_500_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-xxhdpi/ic_apps_grey_500_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_brush_grey_500_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-xxhdpi/ic_brush_grey_500_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_home_grey_500_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-xxhdpi/ic_home_grey_500_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_local_cafe_grey_500_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-xxhdpi/ic_local_cafe_grey_500_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_local_florist_grey_500_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-xxhdpi/ic_local_florist_grey_500_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_play_arrow_grey_500_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-xxhdpi/ic_play_arrow_grey_500_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_send_white_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-xxhdpi/ic_send_white_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_settings_grey_500_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/drawable-xxhdpi/ic_settings_grey_500_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/item_track.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/loading_iamge_progress.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/radio.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/viewer_header.xml: -------------------------------------------------------------------------------- 1 | 18 | 19 | 21 | 22 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_splash.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_channel.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 17 | 18 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_joke.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | 13 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_meizi.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 12 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_news.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | 13 | 20 | 21 | 22 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_test.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_video.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 13 | 14 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_viewer.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 9 | 10 | 11 | 12 | 15 | 16 | 22 | 23 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_channel_custom.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_meizi.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 12 | 13 | 14 | 15 | 18 | 19 | 26 | 27 | 30 | 31 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_sex.xml: -------------------------------------------------------------------------------- 1 | 2 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_theme.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_video.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 14 | 15 | 19 | 20 | 26 | 27 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_video_test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_toolbar.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/layout/video_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/menu/feedback.xml: -------------------------------------------------------------------------------- 1 | 5 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/menu/main.xml: -------------------------------------------------------------------------------- 1 | 5 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/menu/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/mipmap-xhdpi/ic_refresh.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 160dp 5 | 6 | 16dp 7 | 16dp 8 | 16dp 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/values/preference.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | version 4 | feedback 5 | reputation 6 | share 7 | check_update 8 | hid_benefits 9 | open_notify 10 | clear_cache 11 | app_out_clear 12 | pre_app_wall 13 | 14 | screen_notify 15 | is_create_channel 16 | 17 | 18 | blue 19 | indigo 20 | red 21 | green 22 | orange 23 | pink 24 | dark 25 | 26 | 27 | sex 28 | sex_is_selected 29 | boy 30 | girl 31 | -------------------------------------------------------------------------------- /app/src/main/res/values/video_attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | @layout/control_layer 6 | 7 | 8 | 9 | @array/sv_videoview_layer_controllayer 10 | 11 | 12 | 13 | @layout/control_layer 14 | @layout/control_layer_horizon 15 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/test/java/me/imli/newme/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package me.imli.newme; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * To work on unit tests, switch the Test Artifact in the Build Variants view. 9 | */ 10 | public class ExampleUnitTest { 11 | @Test 12 | public void addition_isCorrect() throws Exception { 13 | assertEquals(4, 2 + 2); 14 | } 15 | } -------------------------------------------------------------------------------- /build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | jcenter() 6 | } 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:1.3.0' 9 | classpath "com.android.databinding:dataBinder:1.0-rc3" 10 | classpath 'me.tatarka:gradle-retrolambda:3.3.0-beta2' 11 | 12 | } 13 | } 14 | 15 | allprojects { 16 | repositories { 17 | jcenter() 18 | maven { url 'https://jitpack.io' } 19 | } 20 | } 21 | 22 | task clean(type: Delete) { 23 | delete rootProject.buildDir 24 | } 25 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Nov 25 15:17:55 CST 2015 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip 7 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app', ':videoplaycore', ':videoplaysdk' 2 | -------------------------------------------------------------------------------- /videoplaycore/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /videoplaycore/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion 23 5 | buildToolsVersion "23.0.2" 6 | 7 | defaultConfig { 8 | minSdkVersion 14 9 | targetSdkVersion 23 10 | versionCode 1 11 | versionName "1.0" 12 | } 13 | buildTypes { 14 | release { 15 | minifyEnabled false 16 | // proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 17 | } 18 | } 19 | sourceSets { 20 | main { 21 | aidl.srcDirs = ['java'] 22 | jniLibs.srcDirs = ['libs'] 23 | resources.srcDirs = ['java'] 24 | renderscript.srcDirs = ['java'] 25 | } 26 | } 27 | } 28 | 29 | dependencies { 30 | compile fileTree(dir: 'libs', include: ['*.jar']) 31 | testCompile 'junit:junit:4.12' 32 | } 33 | -------------------------------------------------------------------------------- /videoplaycore/libs/armeabi-v7a/libsinit.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaycore/libs/armeabi-v7a/libsinit.so -------------------------------------------------------------------------------- /videoplaycore/libs/armeabi/libsinit.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaycore/libs/armeabi/libsinit.so -------------------------------------------------------------------------------- /videoplaycore/libs/mips/libsinit.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaycore/libs/mips/libsinit.so -------------------------------------------------------------------------------- /videoplaycore/libs/x86/libsinit.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaycore/libs/x86/libsinit.so -------------------------------------------------------------------------------- /videoplaycore/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in D:\Developer\android-sdk-windows/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | 19 | # videoplay 20 | -dontwarn sinavideo.** 21 | -keep class com.sina.sianvideo.** -------------------------------------------------------------------------------- /videoplaycore/src/androidTest/java/com/sina/sinavideo/coreplayer/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.sina.sinavideo.coreplayer; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /videoplaycore/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /videoplaycore/src/main/java/com/sina/sinavideo/coreplayer/Constants.java: -------------------------------------------------------------------------------- 1 | package com.sina.sinavideo.coreplayer; 2 | 3 | public class Constants { 4 | 5 | public final static boolean DEBUG = true; 6 | } 7 | -------------------------------------------------------------------------------- /videoplaycore/src/main/java/com/sina/sinavideo/coreplayer/SinaVideoFactory.java: -------------------------------------------------------------------------------- 1 | package com.sina.sinavideo.coreplayer; 2 | 3 | import android.content.Context; 4 | 5 | import com.sina.sinavideo.coreplayer.splayer.VideoView; 6 | 7 | public class SinaVideoFactory { 8 | 9 | private static SinaVideoFactory mInstance = null; 10 | 11 | public static SinaVideoFactory getInstance() { 12 | if (mInstance == null) { 13 | mInstance = new SinaVideoFactory(); 14 | } 15 | return mInstance; 16 | } 17 | 18 | public ISinaVideoView createSinaVideoView(Context context) { 19 | // /return new VitamioVideoView(context); 20 | return new VideoView(context); 21 | // /return new VideoViewHard(context); 22 | } 23 | } -------------------------------------------------------------------------------- /videoplaycore/src/main/java/com/sina/sinavideo/coreplayer/splayer/ContextUtils.java: -------------------------------------------------------------------------------- 1 | package com.sina.sinavideo.coreplayer.splayer; 2 | 3 | import com.sina.sinavideo.coreplayer.util.LogS; 4 | 5 | import android.content.Context; 6 | import android.content.pm.ApplicationInfo; 7 | 8 | public class ContextUtils { 9 | 10 | public static int getVersionCode(Context ctx) { 11 | int version = 0; 12 | try { 13 | version = ctx.getPackageManager().getPackageInfo(ctx.getApplicationInfo().packageName, 0).versionCode; 14 | } catch (Exception e) { 15 | LogS.e("ContextUtils", "getVersionCode error," + e.toString()); 16 | } 17 | return version; 18 | } 19 | 20 | public static String getDataDir(Context ctx) { 21 | ApplicationInfo ai = ctx.getApplicationInfo(); 22 | if (ai.dataDir != null) 23 | return fixLastSlash(ai.dataDir); 24 | else 25 | return "/data/data/" + ai.packageName + "/"; 26 | } 27 | 28 | public static String fixLastSlash(String str) { 29 | String res = str == null ? "/" : str.trim() + "/"; 30 | if (res.length() > 2 && res.charAt(res.length() - 2) == '/') 31 | res = res.substring(0, res.length() - 1); 32 | return res; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /videoplaycore/src/main/java/com/sina/sinavideo/coreplayer/splayer/IOUtils.java: -------------------------------------------------------------------------------- 1 | package com.sina.sinavideo.coreplayer.splayer; 2 | 3 | import java.io.Closeable; 4 | 5 | import android.database.Cursor; 6 | import android.os.ParcelFileDescriptor; 7 | import android.util.Log; 8 | 9 | public class IOUtils { 10 | 11 | private static final String TAG = "IOUtils"; 12 | 13 | public static void closeSilently(Closeable c) { 14 | if (c == null) 15 | return; 16 | try { 17 | c.close(); 18 | } catch (Throwable t) { 19 | Log.w(TAG, "fail to close", t); 20 | } 21 | } 22 | 23 | public static void closeSilently(ParcelFileDescriptor c) { 24 | if (c == null) 25 | return; 26 | try { 27 | c.close(); 28 | } catch (Throwable t) { 29 | Log.w(TAG, "fail to close", t); 30 | } 31 | } 32 | 33 | public static void closeSilently(Cursor cursor) { 34 | try { 35 | if (cursor != null) 36 | cursor.close(); 37 | } catch (Throwable t) { 38 | Log.w(TAG, "fail to close", t); 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /videoplaycore/src/main/java/com/sina/sinavideo/coreplayer/util/FileLog.java: -------------------------------------------------------------------------------- 1 | package com.sina.sinavideo.coreplayer.util; 2 | 3 | public class FileLog { 4 | 5 | public static final String TAG = "FileLog"; 6 | public static LogWriteListener mListener; 7 | 8 | public interface LogWriteListener { 9 | 10 | public void writeLog(String type, String tag, String content); 11 | } 12 | 13 | public static void setLogListener(LogWriteListener listener) { 14 | mListener = listener; 15 | } 16 | 17 | public static void write(String type, String tag, String content) { 18 | if (mListener == null) { 19 | return; 20 | } 21 | mListener.writeLog(type, tag, content); 22 | } 23 | } -------------------------------------------------------------------------------- /videoplaycore/src/main/java/com/sina/sinavideo/coreplayer/util/StringUtils.java: -------------------------------------------------------------------------------- 1 | package com.sina.sinavideo.coreplayer.util; 2 | 3 | public class StringUtils { 4 | 5 | public static int convertToInt(String str) throws NumberFormatException { 6 | int s, e; 7 | for (s = 0; s < str.length(); s++) 8 | if (Character.isDigit(str.charAt(s))) 9 | break; 10 | for (e = str.length(); e > 0; e--) 11 | if (Character.isDigit(str.charAt(e - 1))) 12 | break; 13 | if (e > s) { 14 | try { 15 | return Integer.parseInt(str.substring(s, e)); 16 | } catch (NumberFormatException ex) { 17 | LogS.e("convertToInt", ex.toString()); 18 | throw new NumberFormatException(); 19 | } 20 | } else { 21 | throw new NumberFormatException(); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /videoplaycore/src/main/java/com/sina/sinavideo/coreplayer/whitelist/VDDefinitionFilter.java: -------------------------------------------------------------------------------- 1 | package com.sina.sinavideo.coreplayer.whitelist; 2 | 3 | /** 4 | * 清晰度选择类,自动选择清晰度,判断码流 5 | * 6 | * @author sunxiao 7 | * 8 | */ 9 | public class VDDefinitionFilter { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /videoplaycore/src/main/java/com/sina/sinavideo/coreplayer/whitelist/VDWhiteList.java: -------------------------------------------------------------------------------- 1 | package com.sina.sinavideo.coreplayer.whitelist; 2 | 3 | /** 4 | * 白名单类,用来选择软硬解的用途 5 | * 6 | * @author sunxiao 7 | * 8 | */ 9 | public class VDWhiteList { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /videoplaycore/src/main/java/com/sina/sinavideo/coreplayer/whitelist/VDWhiteListDB.java: -------------------------------------------------------------------------------- 1 | package com.sina.sinavideo.coreplayer.whitelist; 2 | 3 | /** 4 | * 白名单数据库类 5 | * 6 | * @author sunxiao 7 | * 8 | */ 9 | public class VDWhiteListDB { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /videoplaycore/src/main/res/raw/libsplayer.7z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaycore/src/main/res/raw/libsplayer.7z -------------------------------------------------------------------------------- /videoplaycore/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | VideoPlayCore 3 | 4 | -------------------------------------------------------------------------------- /videoplaycore/src/test/java/com/sina/sinavideo/coreplayer/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.sina.sinavideo.coreplayer; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * To work on unit tests, switch the Test Artifact in the Build Variants view. 9 | */ 10 | public class ExampleUnitTest { 11 | @Test 12 | public void addition_isCorrect() throws Exception { 13 | assertEquals(4, 2 + 2); 14 | } 15 | } -------------------------------------------------------------------------------- /videoplaysdk/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /videoplaysdk/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | android { 3 | useLibrary 'org.apache.http.legacy' 4 | compileSdkVersion 23 5 | buildToolsVersion "23.0.2" 6 | 7 | defaultConfig { 8 | minSdkVersion 14 9 | targetSdkVersion 23 10 | versionCode 1 11 | versionName "1.0" 12 | } 13 | buildTypes { 14 | release { 15 | minifyEnabled false 16 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 17 | } 18 | } 19 | } 20 | 21 | dependencies { 22 | compile fileTree(include: ['*.jar'], dir: 'libs') 23 | testCompile 'junit:junit:4.12' 24 | compile project(':videoplaycore') 25 | } 26 | -------------------------------------------------------------------------------- /videoplaysdk/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in D:\Developer\android-sdk-windows/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | 19 | 20 | -keep class com.sina.sinavideo.coreplayer.**{*;} 21 | -keep class com.sina.sinavideo.coreplayer.splayer.**{*;} 22 | -keep class com.sina.sinavideo.dlna.**{*;} -------------------------------------------------------------------------------- /videoplaysdk/src/androidTest/java/com/sina/video_playersdk/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.sina.video_playersdk; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /videoplaysdk/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/java/com/sina/sinavideo/sdk/VDVideoViewLayer.java: -------------------------------------------------------------------------------- 1 | 2 | package com.sina.sinavideo.sdk; 3 | 4 | import android.content.Context; 5 | import android.util.AttributeSet; 6 | import android.widget.RelativeLayout; 7 | 8 | /** 9 | * 视频控件层 10 | * 11 | * @author sina 12 | */ 13 | public class VDVideoViewLayer extends RelativeLayout { 14 | 15 | // 标明当前layer是否是竖屏组件 16 | public boolean mIsVertical = false; 17 | 18 | public VDVideoViewLayer(Context context) { 19 | super(context); 20 | setBackgroundColor(0x0); 21 | } 22 | 23 | public VDVideoViewLayer(Context context, AttributeSet attrs) { 24 | super(context, attrs); 25 | setBackgroundColor(0x0); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/java/com/sina/sinavideo/sdk/container/VDVideoSimpleLinearContainer.java: -------------------------------------------------------------------------------- 1 | package com.sina.sinavideo.sdk.container; 2 | 3 | import android.content.Context; 4 | import android.util.AttributeSet; 5 | import android.widget.LinearLayout; 6 | 7 | import com.sina.sinavideo.sdk.widgets.VDBaseWidget; 8 | 9 | /** 10 | * 控制条容器类,单击隐藏等操作 11 | * 12 | * @author seven 13 | */ 14 | public class VDVideoSimpleLinearContainer extends LinearLayout implements VDBaseWidget { 15 | 16 | public VDVideoSimpleLinearContainer(Context context) { 17 | super(context); 18 | } 19 | 20 | public VDVideoSimpleLinearContainer(Context context, AttributeSet attrs) { 21 | super(context, attrs); 22 | } 23 | 24 | @Override 25 | public void reset() { 26 | } 27 | 28 | @Override 29 | public void hide() { 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/java/com/sina/sinavideo/sdk/dlna/DLNACloseButton.java: -------------------------------------------------------------------------------- 1 | package com.sina.sinavideo.sdk.dlna; 2 | 3 | import android.content.Context; 4 | import android.util.AttributeSet; 5 | import android.view.View; 6 | import android.widget.TextView; 7 | 8 | /** 9 | * DLNA播放页中关闭按钮控件 10 | * 11 | * @author sina 12 | * 13 | */ 14 | public class DLNACloseButton extends TextView { 15 | 16 | public DLNACloseButton(Context context) { 17 | super(context); 18 | init(context); 19 | } 20 | 21 | public DLNACloseButton(Context context, AttributeSet attrs) { 22 | super(context, attrs); 23 | init(context); 24 | } 25 | 26 | public DLNACloseButton(Context context, AttributeSet attrs, int defStyle) { 27 | super(context, attrs, defStyle); 28 | init(context); 29 | } 30 | 31 | private void init(Context context) { 32 | setOnClickListener(new OnClickListener() { 33 | 34 | @Override 35 | public void onClick(View v) { 36 | DLNAEventListener.getInstance().notifyDLNAClose(); 37 | // DLNAController.getInstance(getContext()).pause(); 38 | DLNAController.getInstance(getContext()).stop(); 39 | DLNAController.getInstance(getContext()).release(); 40 | } 41 | }); 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/java/com/sina/sinavideo/sdk/dlna/DLNALinearLayout.java: -------------------------------------------------------------------------------- 1 | package com.sina.sinavideo.sdk.dlna; 2 | 3 | import android.content.Context; 4 | import android.util.AttributeSet; 5 | import android.widget.LinearLayout; 6 | 7 | import com.sina.sinavideo.sdk.VDVideoViewController; 8 | import com.sina.sinavideo.sdk.VDVideoViewListeners.OnDLNALinearLayoutListener; 9 | 10 | /** 11 | * DLNA最外层布局控件 12 | * 13 | * @author sina 14 | * 15 | */ 16 | public class DLNALinearLayout extends LinearLayout implements OnDLNALinearLayoutListener { 17 | 18 | public DLNALinearLayout(Context context) { 19 | super(context); 20 | init(context); 21 | } 22 | 23 | public DLNALinearLayout(Context context, AttributeSet attrs) { 24 | super(context, attrs); 25 | init(context); 26 | } 27 | 28 | private void init(Context context) { 29 | VDVideoViewController controller = VDVideoViewController.getInstance(context); 30 | if(controller!=null)controller.addOnDLNALinearLayoutListener(this); 31 | } 32 | 33 | @Override 34 | public void setLayoutVisiable(boolean visiable) { 35 | setVisibility(visiable ? VISIBLE : GONE); 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/java/com/sina/sinavideo/sdk/dlna/MRContent.java: -------------------------------------------------------------------------------- 1 | package com.sina.sinavideo.sdk.dlna; 2 | 3 | /** 4 | * 支持DLNA设备的实体类 5 | * 6 | * @author sina 7 | * 8 | */ 9 | public class MRContent { 10 | 11 | private String uuid; 12 | private String name; 13 | 14 | public void setUuid(String uuid) { 15 | this.uuid = uuid; 16 | } 17 | 18 | public String getUuid() { 19 | return this.uuid; 20 | } 21 | 22 | public void setName(String name) { 23 | this.name = name; 24 | } 25 | 26 | public String getName() { 27 | return this.name; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/java/com/sina/sinavideo/sdk/utils/VDPlayPauseHelper.java: -------------------------------------------------------------------------------- 1 | package com.sina.sinavideo.sdk.utils; 2 | 3 | import android.annotation.SuppressLint; 4 | import android.content.Context; 5 | 6 | import com.sina.sinavideo.sdk.VDVideoViewController; 7 | 8 | public class VDPlayPauseHelper { 9 | 10 | @SuppressLint("unused") 11 | private Context mContext; 12 | 13 | public VDPlayPauseHelper(Context ctt) { 14 | mContext = ctt; 15 | } 16 | 17 | public void doClick() { 18 | VDVideoViewController controller = VDVideoViewController 19 | .getInstance(mContext); 20 | if (null == controller) 21 | return; 22 | // 先测试添加于此 23 | if (controller.mVDPlayerInfo.mIsPlaying) { 24 | controller.pause(); 25 | if (controller.isCanShowFrameAD()) { 26 | controller.notifyVideoFrameADBegin(); 27 | } 28 | } else { 29 | controller.resume(); 30 | controller.start(); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/java/com/sina/sinavideo/sdk/utils/VDSDKConfig.java: -------------------------------------------------------------------------------- 1 | package com.sina.sinavideo.sdk.utils; 2 | 3 | /** 4 | * 配置管理器,管理raw/config.properties的配置文件信息
5 | * 6 | * @sunxiao 注解:
7 | * 不读了。就剩一个配置选项了。直接写死在里面,要是调整的话,直接改常数就行了。 8 | * 9 | * @author alexsun 10 | * 11 | */ 12 | public class VDSDKConfig { 13 | 14 | private final static int mRetryTime = 2; 15 | 16 | public VDSDKConfig() { 17 | } 18 | 19 | private static class VDSDKConfigINSTANCE { 20 | 21 | private static VDSDKConfig instance = new VDSDKConfig(); 22 | } 23 | 24 | public static VDSDKConfig getInstance() { 25 | return VDSDKConfigINSTANCE.instance; 26 | } 27 | 28 | public int getRetryTime() { 29 | return mRetryTime; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/java/com/sina/sinavideo/sdk/utils/m3u8/M3u8Content.java: -------------------------------------------------------------------------------- 1 | package com.sina.sinavideo.sdk.utils.m3u8; 2 | 3 | /** 4 | * m3u8实体基础类 5 | * 6 | * @author GengHongchao 7 | * 8 | */ 9 | public class M3u8Content { 10 | 11 | public static final int M3U8_TYPE_UNKNOWN = 0; 12 | public static final int M3U8_TYPE_SEGMENT = 1; 13 | public static final int M3U8_TYPE_RESOLUTION = 2; 14 | 15 | protected int mType; 16 | 17 | public int getType() { 18 | return mType; 19 | } 20 | } -------------------------------------------------------------------------------- /videoplaysdk/src/main/java/com/sina/sinavideo/sdk/utils/m3u8/M3u8ResolutionContent.java: -------------------------------------------------------------------------------- 1 | package com.sina.sinavideo.sdk.utils.m3u8; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | public class M3u8ResolutionContent extends M3u8Content { 7 | 8 | public M3u8ResolutionContent() { 9 | mType = M3U8_TYPE_RESOLUTION; 10 | mResolutionList = new ArrayList(); 11 | } 12 | 13 | private List mResolutionList; 14 | 15 | public static class M3u8Resolution { 16 | 17 | public static final int M3U8_RESOLUTION_TYPE_SD = 0; 18 | public static final int M3U8_RESOLUTION_TYPE_HD = 1; 19 | public static final int M3U8_RESOLUTION_TYPE_XHD = 2; 20 | public static final int M3U8_RESOLUTION_TYPE_3D = 3; 21 | 22 | public int mResolutionType; 23 | public int mProgramId; 24 | public int mBandWidth; 25 | public String mM3u8Url; 26 | } 27 | 28 | public void setResolutionList(List list) { 29 | mResolutionList = list; 30 | } 31 | 32 | public List getResolutionList() { 33 | return mResolutionList; 34 | } 35 | } -------------------------------------------------------------------------------- /videoplaysdk/src/main/java/com/sina/sinavideo/sdk/utils/m3u8/M3u8SegmentContent.java: -------------------------------------------------------------------------------- 1 | package com.sina.sinavideo.sdk.utils.m3u8; 2 | 3 | 4 | public class M3u8SegmentContent extends M3u8Content { 5 | 6 | public M3u8SegmentContent() { 7 | mType = M3U8_TYPE_SEGMENT; 8 | } 9 | 10 | // private int mTargetDuration; 11 | // private List mM3u8SegmentList; 12 | 13 | public static class M3u8Segment { 14 | 15 | public int mDuration; 16 | public String mUrl; 17 | } 18 | } -------------------------------------------------------------------------------- /videoplaysdk/src/main/java/com/sina/sinavideo/sdk/widgets/VDBaseWidget.java: -------------------------------------------------------------------------------- 1 | package com.sina.sinavideo.sdk.widgets; 2 | 3 | /** 4 | * 所有自定义控件的基础接口 5 | * 6 | * @author GengHongchao 7 | * 8 | */ 9 | public interface VDBaseWidget { 10 | 11 | /** 12 | * 恢复设置 13 | */ 14 | public void reset(); 15 | 16 | /** 17 | * 隐藏 18 | */ 19 | public void hide(); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/java/com/sina/sinavideo/sdk/widgets/playlist/OnPlayListItemClick.java: -------------------------------------------------------------------------------- 1 | package com.sina.sinavideo.sdk.widgets.playlist; 2 | 3 | public interface OnPlayListItemClick { 4 | 5 | public void onItemClick(int position); 6 | } 7 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/java/com/sina/sinavideo/sdk/widgets/playlist/VDVideoPlayListAdapter.java: -------------------------------------------------------------------------------- 1 | package com.sina.sinavideo.sdk.widgets.playlist; 2 | 3 | import android.view.LayoutInflater; 4 | import android.widget.BaseAdapter; 5 | 6 | import com.sina.sinavideo.sdk.data.VDVideoListInfo; 7 | 8 | /** 9 | * 相关视频列表适配器父类 10 | * 11 | * @author sina 12 | */ 13 | public abstract class VDVideoPlayListAdapter extends BaseAdapter { 14 | 15 | protected LayoutInflater mInflater = null; 16 | protected int mItemID = -1; 17 | protected int mCurPlayIndex; 18 | 19 | public void setCurPlayIndex(int index) { 20 | if (mCurPlayIndex == index) 21 | return; 22 | this.mCurPlayIndex = index; 23 | notifyDataSetChanged(); 24 | } 25 | 26 | public int getCurPlayIndex() { 27 | return mCurPlayIndex; 28 | } 29 | 30 | protected VDVideoListInfo mVideoList = new VDVideoListInfo(); 31 | 32 | public void setVideoList(VDVideoListInfo list) { 33 | if (list != null) { 34 | mVideoList = list; 35 | } 36 | notifyDataSetChanged(); 37 | } 38 | 39 | public VDVideoPlayListAdapter() { 40 | 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/java/com/sina/sinavideo/sdk/widgets/playlist/VDVideoPlaylistBase.java: -------------------------------------------------------------------------------- 1 | package com.sina.sinavideo.sdk.widgets.playlist; 2 | 3 | import com.sina.sinavideo.sdk.data.VDVideoInfo; 4 | 5 | /** 6 | * 相关视频列表中数据项的数据接口 7 | * 8 | * @author liuqun 9 | */ 10 | public interface VDVideoPlaylistBase { 11 | 12 | /** 13 | * 设置当前一条数据 14 | * 15 | * @param info 16 | */ 17 | public void setData(VDVideoInfo info); 18 | 19 | /** 20 | * 设置这条数据在列表中哪一个? 21 | * 22 | * @param infoIndex 23 | */ 24 | public void setVideoInfo(int infoIndex, int curPlayIndex); 25 | } 26 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/anim/down_to_up_translate.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/anim/down_to_up_translate2.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/anim/left_to_right_translate.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/anim/left_to_right_translate2.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/anim/right_to_left_translate.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/anim/right_to_left_translate2.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/anim/up_to_down_translate.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/anim/up_to_down_translate2.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/anim/video_list_fade_from_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/anim/video_list_from_right_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/anim/zoom_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 16 | 17 | 22 | 23 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/ad_silent_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/ad_silent_normal.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/ad_silent_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/ad_silent_press.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/btn_retry_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/btn_retry_play.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/close_tip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/close_tip.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/decoding_setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/decoding_setting.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/definition_select_bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/definition_select_bg.9.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/dlna_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/dlna_icon.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/dlna_list_bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/dlna_list_bg.9.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/dlna_unable_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/dlna_unable_icon.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/gestrue_brightness.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/gestrue_brightness.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/indicater_brightness.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/indicater_brightness.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/indicater_progress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/indicater_progress.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/indicater_sound.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/indicater_sound.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/light_high.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/light_high.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/light_low.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/light_low.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/more.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/net_tip_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/net_tip_icon.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/orientation_lock_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/orientation_lock_close.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/orientation_lock_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/orientation_lock_open.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_back_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_back_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_back_press_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_back_press_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_bottom_bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_bottom_bg.9.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_fullscreen_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_fullscreen_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_fullscreen_press_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_fullscreen_press_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_pause_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_pause_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_pause_press_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_pause_press_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_play_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_play_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_play_press_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_play_press_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_seek_backward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_seek_backward.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_seek_forward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_seek_forward.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_sound_ball.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_sound_ball.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_sound_gestrue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_sound_gestrue.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_sound_gestrue_silent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_sound_gestrue_silent.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_title_bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_title_bg.9.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_video_list_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_video_list_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_video_list_item_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_video_list_item_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_video_list_press_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_video_list_press_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_volume_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_volume_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_volume_press_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_volume_press_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_volume_progressbar_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/play_ctrl_volume_progressbar_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/play_error_tip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/play_error_tip.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/play_seek_flag_bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/play_seek_flag_bg.9.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/playbutton_default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/playbutton_default.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/playbutton_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/playbutton_press.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/player_right_panel_bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/player_right_panel_bg.9.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/quality_bg_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/quality_bg_normal.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/quality_bg_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/quality_bg_press.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-hdpi/tvicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-hdpi/tvicon.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/ad_silent_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/ad_silent_normal.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/ad_silent_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/ad_silent_press.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/btn_retry_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/btn_retry_play.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/close_tip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/close_tip.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/decoding_setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/decoding_setting.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/dlna_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/dlna_icon.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/dlna_unable_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/dlna_unable_icon.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/gestrue_brightness.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/gestrue_brightness.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/indicater_brightness.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/indicater_brightness.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/indicater_progress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/indicater_progress.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/indicater_sound.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/indicater_sound.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/light_high.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/light_high.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/light_low.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/light_low.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/more.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/net_tip_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/net_tip_icon.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/orientation_lock_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/orientation_lock_close.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/orientation_lock_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/orientation_lock_open.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_back_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_back_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_back_press_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_back_press_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_fullscreen_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_fullscreen_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_fullscreen_press_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_fullscreen_press_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_pause_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_pause_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_pause_press_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_pause_press_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_seek_backward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_seek_backward.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_seek_forward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_seek_forward.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_sound_ball.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_sound_ball.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_sound_gestrue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_sound_gestrue.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_sound_gestrue_silent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_sound_gestrue_silent.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_video_list_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_video_list_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_video_list_item_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_video_list_item_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_video_list_press_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_video_list_press_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_volume_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_volume_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_volume_press_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_volume_press_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_volume_progressbar_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/play_ctrl_volume_progressbar_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/play_error_tip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/play_error_tip.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/quality_bg_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/quality_bg_normal.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/quality_bg_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/quality_bg_press.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xhdpi/tvicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xhdpi/tvicon.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/ad_silent_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/ad_silent_normal.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/ad_silent_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/ad_silent_press.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/btn_retry_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/btn_retry_play.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/close_tip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/close_tip.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/decoding_setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/decoding_setting.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/dlna_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/dlna_icon.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/dlna_unable_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/dlna_unable_icon.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/gestrue_brightness.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/gestrue_brightness.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/indicater_brightness.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/indicater_brightness.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/indicater_progress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/indicater_progress.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/indicater_sound.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/indicater_sound.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/light_high.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/light_high.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/light_low.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/light_low.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/more.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/net_tip_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/net_tip_icon.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/orientation_lock_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/orientation_lock_close.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/orientation_lock_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/orientation_lock_open.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_back_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_back_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_back_press_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_back_press_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_fullscreen_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_fullscreen_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_fullscreen_press_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_fullscreen_press_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_pause_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_pause_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_pause_press_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_pause_press_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_seek_backward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_seek_backward.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_seek_forward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_seek_forward.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_sound_ball.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_sound_ball.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_sound_gestrue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_sound_gestrue.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_sound_gestrue_silent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_sound_gestrue_silent.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_video_list_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_video_list_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_video_list_press_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_video_list_press_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_volume_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_volume_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_volume_press_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/play_ctrl_volume_press_bg.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/play_error_tip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/play_error_tip.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/quality_bg_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/quality_bg_normal.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/quality_bg_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/quality_bg_press.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable-xxhdpi/tvicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iQuick/NewsMe/003ecb47239eae6fa84afb4c67e1667b20dc895e/videoplaysdk/src/main/res/drawable-xxhdpi/tvicon.png -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable/ad_silent_selcetor.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable/pausebutton.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 9 | 10 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable/play_ctrl_back.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable/play_ctrl_fullscreen.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable/play_ctrl_pause.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable/play_ctrl_play.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable/play_ctrl_video_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable/play_ctrl_volume.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable/play_ctrl_volume_mute.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable/play_seekbar_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable/play_seekbar_color_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable/play_soundseekbar_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable/playbutton.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 9 | 10 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable/quality_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 8 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/drawable/resolution_textcolor.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/layout/default_decodingtype_adapter.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 17 | 18 | 23 | 24 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/layout/dlna_device_list_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/layout/indicater_layer_include.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 15 | 16 | 23 | 24 | 31 | 32 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/layout/tip_layout.xml: -------------------------------------------------------------------------------- 1 | 11 | 12 | 17 | 18 | 26 | 27 | 34 | 35 | -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/raw/config.properties: -------------------------------------------------------------------------------- 1 | #player 2 | retrytime=2 3 | #adunitID 4 | #advUnitID=apphead -------------------------------------------------------------------------------- /videoplaysdk/src/main/res/values/ids.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /videoplaysdk/src/test/java/com/sina/video_playersdk/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.sina.video_playersdk; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * To work on unit tests, switch the Test Artifact in the Build Variants view. 9 | */ 10 | public class ExampleUnitTest { 11 | @Test 12 | public void addition_isCorrect() throws Exception { 13 | assertEquals(4, 2 + 2); 14 | } 15 | } --------------------------------------------------------------------------------