├── .gitignore
├── .idea
├── caches
│ └── build_file_checksums.ser
├── codeStyles
│ ├── Project.xml
│ └── codeStyleConfig.xml
├── dictionaries
│ └── hty_Y.xml
├── encodings.xml
├── gradle.xml
├── jarRepositories.xml
├── misc.xml
├── modules.xml
├── runConfigurations.xml
└── vcs.xml
├── README.md
├── app
├── .gitignore
├── aaaaaa.keystore
├── build.gradle
├── ilivePublish
│ └── release
│ │ ├── app-ilive-1.0.05.apk
│ │ └── output.json
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── android
│ │ └── gift
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── assets
│ │ ├── gift_1.json
│ │ ├── gift_2.json
│ │ ├── gift_3.json
│ │ ├── gift_4.json
│ │ ├── gift_type.json
│ │ └── rooms.json
│ ├── java
│ │ └── com
│ │ │ └── amazon
│ │ │ └── kindle
│ │ │ ├── APPLication.java
│ │ │ ├── adapter
│ │ │ └── AppFragmentPagerAdapter.java
│ │ │ ├── base
│ │ │ ├── BaseAdapter.java
│ │ │ ├── BaseContract.java
│ │ │ ├── BaseEngin.java
│ │ │ ├── BaseFragment.java
│ │ │ ├── BasePresenter.java
│ │ │ ├── BaseRoomActivity.java
│ │ │ └── RoomBaseController.java
│ │ │ ├── bean
│ │ │ ├── ResultData.java
│ │ │ ├── ResultList.java
│ │ │ ├── ShareMenuItemInfo.java
│ │ │ └── UserInfo.java
│ │ │ ├── constant
│ │ │ └── Constants.java
│ │ │ ├── gift
│ │ │ ├── adapter
│ │ │ │ └── GiftItemAdapter.java
│ │ │ ├── bean
│ │ │ │ ├── GiftItemInfo.java
│ │ │ │ └── GiftType.java
│ │ │ ├── contract
│ │ │ │ └── GiftContact.java
│ │ │ ├── dialog
│ │ │ │ └── LiveGiftDialog.java
│ │ │ ├── listener
│ │ │ │ └── OnGiveGiftListener.java
│ │ │ ├── manager
│ │ │ │ ├── GiftBoardManager.java
│ │ │ │ └── GiftRoomGroupManager.java
│ │ │ ├── model
│ │ │ │ └── GiftEngin.java
│ │ │ ├── presenter
│ │ │ │ └── GiftPresenter.java
│ │ │ └── view
│ │ │ │ ├── CircleTextProgressbar.java
│ │ │ │ ├── CountdownGiftView.java
│ │ │ │ ├── GiftAniImageView.java
│ │ │ │ ├── GiftBoardView.java
│ │ │ │ ├── GiftDrawBigMulitAnimationView.java
│ │ │ │ ├── GiftDrawSmallMulitAnimationView.java
│ │ │ │ ├── GiftGradualTextView.java
│ │ │ │ ├── GiftLayout.java
│ │ │ │ └── GiftRoomItemView.java
│ │ │ ├── index
│ │ │ ├── adapter
│ │ │ │ ├── LivePrivateRoomAdapter.java
│ │ │ │ ├── LivePublicRoomAdapter.java
│ │ │ │ └── ShareAdapter.java
│ │ │ ├── ui
│ │ │ │ ├── activity
│ │ │ │ │ ├── AboutActivity.java
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── WebViewActivity.java
│ │ │ │ ├── dialog
│ │ │ │ │ └── ShareDialog.java
│ │ │ │ └── fragment
│ │ │ │ │ ├── IndexPrivateRoomFragment.java
│ │ │ │ │ └── IndexPublicRoomFragment.java
│ │ │ └── view
│ │ │ │ └── IndexRoomItemLayout.java
│ │ │ ├── listener
│ │ │ ├── OnAnimationListener.java
│ │ │ ├── OnItemClickListener.java
│ │ │ ├── OnItemLongClickListener.java
│ │ │ ├── OnLoadMoreListener.java
│ │ │ └── OnLoadMorePresenter.java
│ │ │ ├── manager
│ │ │ ├── ApplicationManager.java
│ │ │ ├── RoomDanmuManager.java
│ │ │ ├── UserManager.java
│ │ │ └── VibratorManager.java
│ │ │ ├── model
│ │ │ ├── BezierEvaluator.java
│ │ │ ├── GlideCircleTransform.java
│ │ │ ├── GlideImageLoader.java
│ │ │ ├── IndexLinLayoutManager.java
│ │ │ ├── ItemSpacesItemDecoration.java
│ │ │ └── ScrollSpeedLinearLayoutManger.java
│ │ │ ├── net
│ │ │ ├── OkHttpUtils.java
│ │ │ └── OnResultCallBack.java
│ │ │ ├── observer
│ │ │ └── SubjectObservable.java
│ │ │ ├── room
│ │ │ ├── activity
│ │ │ │ └── LiveRoomActivity.java
│ │ │ ├── adapter
│ │ │ │ ├── ConversationChatAdapter.java
│ │ │ │ ├── IndexRoomImagesAdapter.java
│ │ │ │ └── LiveFansListAdapter.java
│ │ │ ├── bean
│ │ │ │ ├── BannerInfo.java
│ │ │ │ ├── BoxPixInfo.java
│ │ │ │ ├── CustomMsgExtra.java
│ │ │ │ ├── CustomMsgInfo.java
│ │ │ │ ├── ImageInfo.java
│ │ │ │ ├── InkeChannel.java
│ │ │ │ ├── InkeRoomData.java
│ │ │ │ ├── InkeRoomInfo.java
│ │ │ │ ├── InkeRoomItem.java
│ │ │ │ ├── InkeWebItem.java
│ │ │ │ ├── LiveRoomInfo.java
│ │ │ │ ├── NumberChangedInfo.java
│ │ │ │ └── RoomItem.java
│ │ │ ├── contract
│ │ │ │ └── RoomContact.java
│ │ │ ├── doalog
│ │ │ │ └── InputKeyBoardDialog.java
│ │ │ ├── model
│ │ │ │ └── RoomEngin.java
│ │ │ ├── presenter
│ │ │ │ └── RoomPresenter.java
│ │ │ └── view
│ │ │ │ ├── BrightConversationListView.java
│ │ │ │ ├── GoldWireLayout.java
│ │ │ │ ├── LikeAbstractPathAnimator.java
│ │ │ │ ├── LikeHeartLayout.java
│ │ │ │ ├── LikeHeartView.java
│ │ │ │ ├── LikePathAnimator.java
│ │ │ │ ├── RoundGlobeView.java
│ │ │ │ └── VideoLiveControllerView.java
│ │ │ ├── service
│ │ │ ├── DownLoadService.java
│ │ │ └── bean
│ │ │ │ └── BuildMessageInfo.java
│ │ │ ├── util
│ │ │ ├── AnimationUtil.java
│ │ │ ├── AppUtils.java
│ │ │ ├── DataFactory.java
│ │ │ ├── Logger.java
│ │ │ ├── ScreenLayoutChangedHelp.java
│ │ │ ├── SpannableStringUtils.java
│ │ │ ├── StatusUtils.java
│ │ │ └── UserModelUtil.java
│ │ │ └── view
│ │ │ ├── CircleProgressView.java
│ │ │ ├── CommentTitleView.java
│ │ │ ├── DataChangeView.java
│ │ │ ├── LayoutProvider.java
│ │ │ ├── LoadingMoreView.java
│ │ │ ├── MarqueeTextView.java
│ │ │ ├── MusicBackgroungBlurView.java
│ │ │ ├── ProgressWheel.java
│ │ │ ├── RadarLayout.java
│ │ │ ├── RoundImageView.java
│ │ │ ├── ShapeTextView.java
│ │ │ ├── StaggeredItemDecoration.java
│ │ │ ├── TextImageSpan.java
│ │ │ └── danmaku
│ │ │ ├── CenteredImageSpan.java
│ │ │ └── CircleDrawable.java
│ └── res
│ │ ├── anim
│ │ ├── gift_room_lite_item_enter.xml
│ │ ├── gift_room_lite_item_out.xml
│ │ ├── menu_enter.xml
│ │ └── menu_exit.xml
│ │ ├── animator
│ │ └── gift_room_lite_num_scalex.xml
│ │ ├── color
│ │ ├── lib_text_color_black_selector.xml
│ │ └── tab_text_item_selector.xml
│ │ ├── drawable-v21
│ │ ├── ic_item_foreground.xml
│ │ └── lib_item_comment_bg.xml
│ │ ├── drawable-v24
│ │ └── ic_launcher_foreground.xml
│ │ ├── drawable-xhdpi
│ │ ├── ic_draw_0.png
│ │ ├── ic_draw_1.png
│ │ ├── ic_draw_2.png
│ │ ├── ic_draw_3.png
│ │ ├── ic_draw_4.png
│ │ ├── ic_draw_5.png
│ │ ├── ic_draw_6.png
│ │ ├── ic_draw_7.png
│ │ ├── ic_draw_8.png
│ │ ├── ic_draw_9.png
│ │ ├── ic_draw_text.png
│ │ ├── ic_vip_room_enter.png
│ │ ├── lucky_box_big_1.png
│ │ ├── lucky_box_big_10.png
│ │ ├── lucky_box_big_11.png
│ │ ├── lucky_box_big_12.png
│ │ ├── lucky_box_big_13.png
│ │ ├── lucky_box_big_14.png
│ │ ├── lucky_box_big_15.png
│ │ ├── lucky_box_big_16.png
│ │ ├── lucky_box_big_17.png
│ │ ├── lucky_box_big_18.png
│ │ ├── lucky_box_big_19.png
│ │ ├── lucky_box_big_2.png
│ │ ├── lucky_box_big_20.png
│ │ ├── lucky_box_big_21.png
│ │ ├── lucky_box_big_22.png
│ │ ├── lucky_box_big_23.png
│ │ ├── lucky_box_big_24.png
│ │ ├── lucky_box_big_25.png
│ │ ├── lucky_box_big_26.png
│ │ ├── lucky_box_big_27.png
│ │ ├── lucky_box_big_3.png
│ │ ├── lucky_box_big_4.png
│ │ ├── lucky_box_big_5.png
│ │ ├── lucky_box_big_6.png
│ │ ├── lucky_box_big_7.png
│ │ ├── lucky_box_big_8.png
│ │ ├── lucky_box_big_9.png
│ │ └── tip_game.9.png
│ │ ├── drawable-xxhdpi
│ │ ├── bg_gift_item_selected.9.png
│ │ ├── btn_live_close.png
│ │ ├── btn_live_msg.png
│ │ ├── btn_live_share.png
│ │ ├── com_facebook_tooltip_black_background.9.png
│ │ ├── gift_card_level_three_n_0.png
│ │ ├── gift_card_level_three_n_1.png
│ │ ├── gift_card_level_three_n_2.png
│ │ ├── gift_card_level_three_n_3.png
│ │ ├── gift_card_level_three_n_4.png
│ │ ├── gift_card_level_three_n_5.png
│ │ ├── gift_card_level_three_n_6.png
│ │ ├── gift_card_level_three_n_7.png
│ │ ├── gift_card_level_three_n_8.png
│ │ ├── gift_card_level_three_n_9.png
│ │ ├── gift_card_level_three_n_a.png
│ │ ├── gift_numx.png
│ │ ├── ic_chat_server.png
│ │ ├── ic_default_gift_icon.png
│ │ ├── ic_default_user_head.png
│ │ ├── ic_direction_bottom.png
│ │ ├── ic_direction_left.png
│ │ ├── ic_direction_right.png
│ │ ├── ic_direction_top.png
│ │ ├── ic_gift_board_money.png
│ │ ├── ic_gift_money.png
│ │ ├── ic_gift_send_icon.png
│ │ ├── ic_history.png
│ │ ├── ic_history_normal.png
│ │ ├── ic_launcher.png
│ │ ├── ic_liked.png
│ │ ├── ic_list_empty_icon.png
│ │ ├── ic_message_down.png
│ │ ├── ic_message_face.png
│ │ ├── ic_nav_bar_back_black.png
│ │ ├── ic_nav_bar_back_gray.png
│ │ ├── ic_nav_bar_back_white.png
│ │ ├── ic_net_error.png
│ │ ├── ic_room_monery.png
│ │ ├── icon_like_png.png
│ │ ├── iv_icon_search.png
│ │ ├── iv_share_qq.png
│ │ ├── iv_share_qzone.png
│ │ ├── iv_share_weichat.png
│ │ ├── iv_share_weichatfriend.png
│ │ ├── loading_circle_progress.png
│ │ ├── lucky_num0.png
│ │ ├── lucky_num1.png
│ │ ├── lucky_num2.png
│ │ ├── lucky_num3.png
│ │ ├── lucky_num4.png
│ │ ├── lucky_num5.png
│ │ ├── lucky_num6.png
│ │ ├── lucky_num7.png
│ │ ├── lucky_num8.png
│ │ ├── lucky_num9.png
│ │ ├── num0.png
│ │ ├── num1.png
│ │ ├── num2.png
│ │ ├── num3.png
│ │ ├── num4.png
│ │ ├── num5.png
│ │ ├── num6.png
│ │ ├── num7.png
│ │ ├── num8.png
│ │ ├── num9.png
│ │ ├── resource_heart0.png
│ │ ├── resource_heart1.png
│ │ ├── resource_heart2.png
│ │ ├── resource_heart3.png
│ │ ├── resource_heart4.png
│ │ ├── resource_heart5.png
│ │ ├── resource_heart6.png
│ │ ├── resource_heart7.png
│ │ ├── resource_heart8.png
│ │ ├── resource_heart9.png
│ │ ├── room_danmu_item_bg.9.png
│ │ ├── vip_gradle1.png
│ │ ├── vip_gradle10.png
│ │ ├── vip_gradle11.png
│ │ ├── vip_gradle12.png
│ │ ├── vip_gradle13.png
│ │ ├── vip_gradle14.png
│ │ ├── vip_gradle15.png
│ │ ├── vip_gradle16.png
│ │ ├── vip_gradle17.png
│ │ ├── vip_gradle18.png
│ │ ├── vip_gradle19.png
│ │ ├── vip_gradle2.png
│ │ ├── vip_gradle20.png
│ │ ├── vip_gradle21.png
│ │ ├── vip_gradle22.png
│ │ ├── vip_gradle23.png
│ │ ├── vip_gradle24.png
│ │ ├── vip_gradle25.png
│ │ ├── vip_gradle26.png
│ │ ├── vip_gradle27.png
│ │ ├── vip_gradle28.png
│ │ ├── vip_gradle29.png
│ │ ├── vip_gradle3.png
│ │ ├── vip_gradle30.png
│ │ ├── vip_gradle31.png
│ │ ├── vip_gradle32.png
│ │ ├── vip_gradle33.png
│ │ ├── vip_gradle34.png
│ │ ├── vip_gradle35.png
│ │ ├── vip_gradle36.png
│ │ ├── vip_gradle37.png
│ │ ├── vip_gradle38.png
│ │ ├── vip_gradle39.png
│ │ ├── vip_gradle4.png
│ │ ├── vip_gradle40.png
│ │ ├── vip_gradle41.png
│ │ ├── vip_gradle42.png
│ │ ├── vip_gradle43.png
│ │ ├── vip_gradle44.png
│ │ ├── vip_gradle45.png
│ │ ├── vip_gradle46.png
│ │ ├── vip_gradle47.png
│ │ ├── vip_gradle48.png
│ │ ├── vip_gradle49.png
│ │ ├── vip_gradle5.png
│ │ ├── vip_gradle50.png
│ │ ├── vip_gradle6.png
│ │ ├── vip_gradle7.png
│ │ ├── vip_gradle8.png
│ │ └── vip_gradle9.png
│ │ ├── drawable
│ │ ├── arice_dot_false.xml
│ │ ├── arice_dot_green.xml
│ │ ├── arice_dot_red.xml
│ │ ├── arice_dot_style.xml
│ │ ├── arice_dot_tr_red.xml
│ │ ├── arice_dot_true.xml
│ │ ├── bg_anchor_user_head_shape.xml
│ │ ├── bg_black_shape_gratien.xml
│ │ ├── bg_black_shape_ungratien.xml
│ │ ├── bg_draw_layout.xml
│ │ ├── bg_fans_user_mad_head_shape.xml
│ │ ├── bg_fans_user_man_head_shape.xml
│ │ ├── bg_gift_num_item.xml
│ │ ├── bg_gift_tag_shape.xml
│ │ ├── bg_input.xml
│ │ ├── bg_inputbox.xml
│ │ ├── bg_room_draw_level_bg.xml
│ │ ├── bg_shape_room_cacht_content.xml
│ │ ├── bg_title.xml
│ │ ├── bg_user_head_shape.xml
│ │ ├── bg_white_circular_trs.xml
│ │ ├── btn_nav_menu_back_selector_black.xml
│ │ ├── btn_nav_menu_back_selector_white.xml
│ │ ├── dot_arl_selector.xml
│ │ ├── full_room_input_send_bg.xml
│ │ ├── full_room_input_unsend_bg.xml
│ │ ├── gift_bg_live_user_data.xml
│ │ ├── gift_draw_big_anim.xml
│ │ ├── gift_item_bg_shape.xml
│ │ ├── gift_room_avatar_bg.xml
│ │ ├── ic_item_foreground.xml
│ │ ├── index_head_border.xml
│ │ ├── index_list_one_item_bottom_bg.xml
│ │ ├── index_live_public_item_bottom_bg.xml
│ │ ├── lib_bg_dialog_bottom_bg.xml
│ │ ├── lib_item_comment_bg.xml
│ │ └── progress.xml
│ │ ├── layout
│ │ ├── activity_about.xml
│ │ ├── activity_live_room.xml
│ │ ├── activity_main.xml
│ │ ├── activity_webview.xml
│ │ ├── comment_title_layout.xml
│ │ ├── dialog_gift_group.xml
│ │ ├── dialog_input_keyboard_layout.xml
│ │ ├── dialog_share.xml
│ │ ├── fragment_index_private_room.xml
│ │ ├── fragment_index_public_room.xml
│ │ ├── fragment_index_room.xml
│ │ ├── index_main_layout.xml
│ │ ├── item_idnex_user_image_item.xml
│ │ ├── item_live_conversation_layout.xml
│ │ ├── item_live_gif_layout.xml
│ │ ├── item_live_private_banner_item.xml
│ │ ├── item_live_private_room_item.xml
│ │ ├── item_live_public_banner_item.xml
│ │ ├── item_live_public_room_item.xml
│ │ ├── item_live_user_fans_item.xml
│ │ ├── item_re_gift_item_layout.xml
│ │ ├── item_share_item.xml
│ │ ├── item_unknown.xml
│ │ ├── layout_periscope.xml
│ │ ├── live_top_tool_bar.xml
│ │ ├── view_bright_conversation_layout.xml
│ │ ├── view_countdown_gift_layout.xml
│ │ ├── view_gift_big_draw_layout.xml
│ │ ├── view_gift_board.xml
│ │ ├── view_gift_board_item.xml
│ │ ├── view_gift_layout.xml
│ │ ├── view_index_globe_layout.xml
│ │ ├── view_index_room_layout.xml
│ │ ├── view_list_empty.xml
│ │ ├── view_live_controller_layout.xml
│ │ ├── view_load_more_layout.xml
│ │ ├── view_tab_item.xml
│ │ └── view_web_error_page.xml
│ │ ├── values-v19
│ │ └── styles.xml
│ │ ├── values-v21
│ │ └── styles.xml
│ │ └── values
│ │ ├── attrs.xml
│ │ ├── colors.xml
│ │ ├── dimens.xml
│ │ ├── integers.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── com
│ └── android
│ └── gift
│ └── ExampleUnitTest.java
├── build.gradle
├── config.gradle
├── doc
├── apk
│ ├── iLive-1.0.01.apk
│ ├── iLive-1.0.02.apk
│ ├── iLive-1.0.03.apk
│ └── iLive-1.0.04.apk
└── screenshot
│ ├── 一对一.png
│ ├── 直播列表.png
│ ├── 直播间1.png
│ ├── 直播间中奖.png
│ ├── 直播间礼物.png
│ └── 礼物面板.png
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── live-player-lib
├── .gitignore
├── build.gradle
├── libs
│ ├── armeabi
│ │ ├── libTRAECodec.so
│ │ ├── libliteavsdk.so
│ │ ├── libsaturn.so
│ │ ├── libstlport_shared.so
│ │ ├── libtraeimp-rtmp.so
│ │ └── libtxffmpeg.so
│ └── liteavsdk.jar
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── android
│ │ └── live
│ │ └── player
│ │ └── lib
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ └── android
│ │ │ └── live
│ │ │ └── player
│ │ │ └── lib
│ │ │ ├── base
│ │ │ ├── BaseVideoController.java
│ │ │ └── BaseVideoPlayer.java
│ │ │ ├── controller
│ │ │ └── PlayerVideoController.java
│ │ │ ├── listener
│ │ │ ├── OnVideoTouchListener.java
│ │ │ ├── VideoPlayerEventListener.java
│ │ │ └── VideoPlayerListener.java
│ │ │ ├── manager
│ │ │ ├── VideoAudioFocusManager.java
│ │ │ └── VideoPlayerManager.java
│ │ │ ├── model
│ │ │ └── VideoPlayerState.java
│ │ │ ├── utils
│ │ │ ├── Logger.java
│ │ │ └── VideoUtils.java
│ │ │ └── view
│ │ │ └── VideoPlayerTrack.java
│ └── res
│ │ ├── drawable-xxhdpi
│ │ ├── bg_live_transit.jpg
│ │ ├── ic_private_media_play.png
│ │ ├── ic_video_default_cover.png
│ │ ├── loading_1.png
│ │ ├── loading_10.png
│ │ ├── loading_11.png
│ │ ├── loading_12.png
│ │ ├── loading_2.png
│ │ ├── loading_3.png
│ │ ├── loading_4.png
│ │ ├── loading_5.png
│ │ ├── loading_6.png
│ │ ├── loading_7.png
│ │ ├── loading_8.png
│ │ └── loading_9.png
│ │ ├── drawable
│ │ ├── bg_black.xml
│ │ ├── video_loading_anim.xml
│ │ └── video_text_play_bg.xml
│ │ ├── layout
│ │ ├── video_controller_layout.xml
│ │ └── view_live_media_player_layout.xml
│ │ └── values
│ │ ├── attrs.xml
│ │ ├── ids.xml
│ │ ├── integers.xml
│ │ └── strings.xml
│ └── test
│ └── java
│ └── com
│ └── android
│ └── live
│ └── player
│ └── lib
│ └── ExampleUnitTest.java
└── settings.gradle
/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | .externalNativeBuild
10 |
--------------------------------------------------------------------------------
/.idea/caches/build_file_checksums.ser:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hty527/iLive/b9f26fa5c93ce6f7e4a7b514b92995810ae65149/.idea/caches/build_file_checksums.ser
--------------------------------------------------------------------------------
/.idea/codeStyles/codeStyleConfig.xml:
--------------------------------------------------------------------------------
1 |
25 |
26 | [点击查看历史版本]: https://github.com/Yuye584312311/iLive/wiki/HistoryVersion "历史版本"
27 | **[点击查看历史版本]**
28 |
29 | ### 软件截图:
30 |
extends Fragment implements BaseContract.BaseView {
16 |
17 | protected P mPresenter;
18 | protected abstract int getLayoutID();
19 | protected abstract void initViews();
20 |
21 | @Nullable
22 | @Override
23 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
24 | @Nullable Bundle savedInstanceState) {
25 | return inflater.inflate(getLayoutID(),null,false);
26 | }
27 |
28 | @Override
29 | public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
30 | super.onViewCreated(view, savedInstanceState);
31 | mPresenter=createPresenter();
32 | if(null!=mPresenter){
33 | mPresenter.attachView(this);
34 | }
35 | initViews();
36 | }
37 |
38 | /**
39 | * 交由子类实现自己指定的Presenter,可以为空
40 | * @return 子类持有的继承自BasePresenter的Presenter
41 | */
42 | protected abstract P createPresenter();
43 |
44 | @Override
45 | public void setUserVisibleHint(boolean isVisibleToUser) {
46 | super.setUserVisibleHint(isVisibleToUser);
47 | if (getUserVisibleHint()) {
48 | onVisible();
49 | } else {
50 | onInvisible();
51 | }
52 | }
53 |
54 | @Override
55 | public void onDestroy() {
56 | super.onDestroy();
57 | if(null!=mPresenter){
58 | mPresenter.detachView();
59 | mPresenter=null;
60 | }
61 | }
62 |
63 | protected void onInvisible() {}
64 |
65 | protected void onVisible() {}
66 |
67 | @Override
68 | public void showError(int code, String errorMsg) {}
69 |
70 | protected View findViewById(int id){
71 | return getView(id);
72 | }
73 |
74 | protected
内部版本:"
38 | +AppUtils.getInstance().getVersionCode()
39 | +"";
40 | ((TextView) findViewById(R.id.tv_version)).setText(Html.fromHtml(content));
41 | findViewById(R.id.btn_check_update).setOnClickListener(new View.OnClickListener() {
42 | @Override
43 | public void onClick(View v) {
44 | try {
45 | Uri uri=Uri.parse("https://github.com/Yuye584312311/iLive/wiki/HistoryVersion");
46 | Intent intent=new Intent(Intent.ACTION_VIEW,uri);
47 | startActivity(intent);
48 | }catch (RuntimeException e){
49 | e.printStackTrace();
50 | Toast.makeText(AboutActivity.this,"未找到合适的应用打开网页",Toast.LENGTH_SHORT).show();
51 | }
52 | }
53 | });
54 | }
55 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/amazon/kindle/listener/OnAnimationListener.java:
--------------------------------------------------------------------------------
1 | package com.amazon.kindle.listener;
2 |
3 | /**
4 | * Created by TinyHung@outlook.com
5 | * 2019/7/5
6 | */
7 |
8 | public interface OnAnimationListener {
9 | void onStart();
10 | void onEnd();
11 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/amazon/kindle/listener/OnItemClickListener.java:
--------------------------------------------------------------------------------
1 | package com.amazon.kindle.listener;
2 |
3 | import android.view.View;
4 |
5 | /**
6 | * hty_Yuye@Outlook.com
7 | * 2019/3/23
8 | */
9 |
10 | public interface OnItemClickListener {
11 | void onItemClick(View view, int position, long itemId);
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/java/com/amazon/kindle/listener/OnItemLongClickListener.java:
--------------------------------------------------------------------------------
1 | package com.amazon.kindle.listener;
2 |
3 | import android.view.View;
4 |
5 | /**
6 | * hty_Yuye@Outlook.com
7 | * 2019/3/23
8 | */
9 |
10 | public interface OnItemLongClickListener {
11 | void onItemLongClick(View view, int position, long itemId);
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/java/com/amazon/kindle/listener/OnLoadMorePresenter.java:
--------------------------------------------------------------------------------
1 | package com.amazon.kindle.listener;
2 |
3 | /**
4 | * hty_Yuye@Outlook.com
5 | * 2019/3/24
6 | */
7 |
8 | public interface OnLoadMorePresenter {
9 | //加载完成
10 | void onLoadComplete();
11 | //结束,一般为空调用
12 | void onLoadEnd();
13 | //加载失败
14 | void onLoadError();
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/amazon/kindle/manager/UserManager.java:
--------------------------------------------------------------------------------
1 | package com.amazon.kindle.manager;
2 |
3 | /**
4 | * Created by TinyHung@outlook.com
5 | * 2019/7/6
6 | */
7 |
8 | public class UserManager {
9 |
10 | private static volatile UserManager mInstance;
11 | private String mUserId="88888888";
12 | private String mNickName="周杰伦";
13 | private String mAcatar="http://img.mp.sohu.com/upload/20170811/eaec0c0513e544adb68c6b2af0fdbb1b_th.png";
14 | private int mUserGradle=30;
15 |
16 | public static synchronized UserManager getInstance() {
17 | synchronized (UserManager.class) {
18 | if (null == mInstance) {
19 | mInstance = new UserManager();
20 | }
21 | }
22 | return mInstance;
23 | }
24 |
25 | public String getUserId() {
26 | return mUserId;
27 | }
28 |
29 | public void setUserId(String userId) {
30 | mUserId = userId;
31 | }
32 |
33 | public String getNickName() {
34 | return mNickName;
35 | }
36 |
37 | public void setNickName(String nickName) {
38 | mNickName = nickName;
39 | }
40 |
41 | public String getAcatar() {
42 | return mAcatar;
43 | }
44 |
45 | public void setAcatar(String acatar) {
46 | mAcatar = acatar;
47 | }
48 |
49 | public int getUserGradle() {
50 | return mUserGradle;
51 | }
52 |
53 | public void setUserGradle(int userGradle) {
54 | mUserGradle = userGradle;
55 | }
56 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/amazon/kindle/manager/VibratorManager.java:
--------------------------------------------------------------------------------
1 | package com.amazon.kindle.manager;
2 |
3 | import android.content.Context;
4 | import android.os.Vibrator;
5 |
6 | /**
7 | * Created by TinyHung@outlook.com
8 | * 2019/7/18
9 | * 震动
10 | */
11 |
12 | public class VibratorManager {
13 |
14 | private static volatile VibratorManager mInstance;
15 | private Vibrator mVibrator;
16 |
17 | public static synchronized VibratorManager getInstance() {
18 | synchronized (VibratorManager.class) {
19 | if (null == mInstance) {
20 | mInstance = new VibratorManager();
21 | }
22 | }
23 | return mInstance;
24 | }
25 |
26 | /**
27 | * 开始震动
28 | * @param context 全局上下文
29 | * @param milliss 时长
30 | */
31 | public void vibrate(Context context,long milliss){
32 | if(null==mVibrator&&null!=context){
33 | mVibrator = (Vibrator)context.getSystemService(context.VIBRATOR_SERVICE);
34 | }
35 | if(null!=mVibrator){
36 | mVibrator.vibrate(milliss);
37 | }
38 | }
39 |
40 | public void onReset(){
41 | if(null!=mVibrator){
42 | mVibrator.cancel();
43 | }
44 | }
45 |
46 | public void onDestroy(){
47 | if(null!=mVibrator){
48 | mVibrator.cancel();
49 | mVibrator=null;
50 | }
51 | }
52 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/amazon/kindle/model/BezierEvaluator.java:
--------------------------------------------------------------------------------
1 | package com.amazon.kindle.model;
2 |
3 | import android.animation.TypeEvaluator;
4 | import android.graphics.Point;
5 |
6 | /**
7 | * TinyHung@Outlook.com
8 | * 2018/8/25
9 | * 二次方公式
10 | * 计算贝塞尔曲线运动轨迹
11 | */
12 |
13 | public class BezierEvaluator implements TypeEvaluator