From 9433bb72ca9b6a8af0ef536eeb11d6307d9734ea Mon Sep 17 00:00:00 2001 From: kehaoyuan Date: Fri, 5 Jun 2020 15:10:13 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=85=89=E7=8E=AF=E5=8A=A9=E6=89=8BV4.0.2-?= =?UTF-8?q?=E6=B8=B8=E6=88=8F=E4=B8=93=E9=A2=98=E5=8A=9F=E8=83=BD=E5=BC=BA?= =?UTF-8?q?=E5=8C=96=EF=BC=88=E5=90=8E=E5=8F=B0=EF=BC=89(8)=20https://gitl?= =?UTF-8?q?ab.ghzs.com/pm/halo-app-issues/-/issues/886?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gh/gamecenter/home/LegacyHomeSubjectTransformer.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/gh/gamecenter/home/LegacyHomeSubjectTransformer.kt b/app/src/main/java/com/gh/gamecenter/home/LegacyHomeSubjectTransformer.kt index 60a5d19085..87edd4897c 100644 --- a/app/src/main/java/com/gh/gamecenter/home/LegacyHomeSubjectTransformer.kt +++ b/app/src/main/java/com/gh/gamecenter/home/LegacyHomeSubjectTransformer.kt @@ -22,7 +22,8 @@ object LegacyHomeSubjectTransformer { val gameEntity = data[0] if (gameEntity.id.isEmpty()) gameEntity.id = gameEntity.link ?: "" - if (data[0].type == "column") { + // 图片专题样式(后台操作->只显示(滑动)) + if (data[0].type == "column" && subjectEntity.type == "image_slide") { itemDataImage.imageSlide = gameEntity itemList.add(itemDataImage) } else { From 395eb641e5f79f154fbaecba3061b4cd6292a7ec Mon Sep 17 00:00:00 2001 From: kehaoyuan Date: Fri, 5 Jun 2020 16:21:32 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E9=A6=96=E9=A1=B5?= =?UTF-8?q?=E6=97=A0=E7=94=A8=E7=9A=84=E4=B8=8B=E8=BD=BD=E7=9B=91=E5=90=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt | 7 ------- 1 file changed, 7 deletions(-) diff --git a/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt b/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt index 20a0f5eaeb..f3b4c71eba 100644 --- a/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt @@ -277,10 +277,6 @@ class HomeViewModel(application: Application) : AndroidViewModel(application) { val slideItem = HomeItemData() slideItem.slides = mHomeSlides mSnapshotItemList.add(slideItem) - - for (slide in mHomeSlides) { - if (slide.linkGame != null) addGamePositionAndPackage(slide.linkGame) - } } if (mHomeRecommends.isNotEmpty()) { @@ -318,7 +314,6 @@ class HomeViewModel(application: Application) : AndroidViewModel(application) { attachGame.blockPosition = i + 1 attachGame.attachGame = homeContent mSnapshotItemList.add(attachGame) - if (homeContent.linkGame != null) addGamePositionAndPackage(homeContent.linkGame) } else if (linkType == "top_game_comment") { val head = HomeItemData() head.columnHead = SubjectEntity(type = linkType, name = "安利墙") @@ -365,8 +360,6 @@ class HomeViewModel(application: Application) : AndroidViewModel(application) { itemDataList.postValue(mSnapshotItemList) } - - // todo 部分游戏Item不需要显示下载按钮,去除相关监听 private fun addGamePositionAndPackage(game: GameEntity) { var packages = "" for (apkEntity in game.getApk()) { From 0bef1a2aa89e0e5d76231b6aa0e6efa539d11d19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=8E=89=E4=B9=85?= <1484288157@qq.com> Date: Mon, 8 Jun 2020 11:01:03 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E8=A7=86=E9=A2=91=E5=90=88=E9=9B=86?= =?UTF-8?q?=E3=80=81=E4=B8=AA=E4=BA=BA=E4=B8=BB=E9=A1=B5=E3=80=81=E6=B5=8F?= =?UTF-8?q?=E8=A7=88=E8=AE=B0=E5=BD=95=E3=80=81=E6=88=91=E7=9A=84=E6=94=B6?= =?UTF-8?q?=E8=97=8F=E8=A7=86=E9=A2=91UI=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/gh/common/util/TimeUtils.kt | 13 +- .../gh/gamecenter/collection/VideoAdapter.kt | 4 +- .../gh/gamecenter/collection/VideoFragment.kt | 4 +- .../home/UserVideoHistoryAdapter.kt | 8 +- .../home/UserVideoHistoryFragment.kt | 6 +- .../gh/gamecenter/room/dao/VideoHistoryDao.kt | 2 +- .../gamecenter/video/game/GameVideoAdapter.kt | 5 +- .../video/game/GameVideoFragment.kt | 5 +- .../ic_video_comment_count.png | Bin 0 -> 1041 bytes .../background_shape_white_radius_6.xml | 6 + .../visit_history_video_bottom_bg.xml | 9 + .../main/res/layout/fragment_user_history.xml | 4 +- app/src/main/res/layout/video_new_item.xml | 165 ++++++++++++++---- 13 files changed, 175 insertions(+), 56 deletions(-) create mode 100644 app/src/main/res/drawable-xxhdpi/ic_video_comment_count.png create mode 100644 app/src/main/res/drawable/background_shape_white_radius_6.xml create mode 100644 app/src/main/res/drawable/visit_history_video_bottom_bg.xml diff --git a/app/src/main/java/com/gh/common/util/TimeUtils.kt b/app/src/main/java/com/gh/common/util/TimeUtils.kt index 157aa21eeb..f77528ca86 100644 --- a/app/src/main/java/com/gh/common/util/TimeUtils.kt +++ b/app/src/main/java/com/gh/common/util/TimeUtils.kt @@ -60,7 +60,7 @@ object TimeUtils { /** * 判断时间戳是多少天前 */ - fun getBeforeDays(timestamp: Long):Int{ + fun getBeforeDays(timestamp: Long): Int { var days: Long = 0 val format = SimpleDateFormat("yyyyMMdd HH:mm", Locale.getDefault()) try { @@ -73,4 +73,15 @@ object TimeUtils { return days.toInt() } + + + /** + * 格式化视频时长 + */ + @JvmStatic + fun formatVideoDuration(length: Long): String { + val minute = length / 60 + val second = length % 60 + return String.format(Locale.CHINA, "%02d:%02d", minute, second) + } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/collection/VideoAdapter.kt b/app/src/main/java/com/gh/gamecenter/collection/VideoAdapter.kt index a19c73c7d5..534ab7c41d 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/VideoAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/collection/VideoAdapter.kt @@ -9,7 +9,6 @@ import com.gh.common.util.* import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter -import com.gh.gamecenter.databinding.VideoItemBinding import com.gh.gamecenter.databinding.VideoNewItemBinding import com.gh.gamecenter.entity.MyVideoEntity import com.gh.gamecenter.video.VideoItemViewHolder @@ -44,8 +43,7 @@ class VideoAdapter(context: Context, override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { if (holder is VideoItemViewHolder) { val entity = mEntityList[position] - ImageUtils.display(holder.binding.videoCover, entity.poster) - holder.binding.videoLikeCount.text = entity.vote.toSimpleCount() + holder.binding.video = entity holder.itemView.setOnClickListener { if (mVideoStyle == VideoFragment.VideoStyle.COLLECT.value) { DirectUtils.directToVideoDetail(mContext, entity.id, VideoDetailContainerViewModel.Location.USER_FAVORITE_VIDEO.value, false, path = getPath()) diff --git a/app/src/main/java/com/gh/gamecenter/collection/VideoFragment.kt b/app/src/main/java/com/gh/gamecenter/collection/VideoFragment.kt index fbc4b58057..c5d61592cc 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/VideoFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/collection/VideoFragment.kt @@ -2,6 +2,7 @@ package com.gh.gamecenter.collection import android.os.Bundle import android.view.View +import android.widget.RelativeLayout import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView import com.gh.common.util.dip2px @@ -23,12 +24,13 @@ class VideoFragment : ListFragment() { } override fun getItemDecoration(): RecyclerView.ItemDecoration { - return GridSpacingItemDecoration(2, 1.5F.dip2px(), false, 8F.dip2px()) + return GridSpacingItemDecoration(2, 8F.dip2px(), false, 8F.dip2px()) } override fun onCreate(savedInstanceState: Bundle?) { mVideoStyle = arguments?.getString("videoStyle") ?: "" super.onCreate(savedInstanceState) + mListRv.setPadding(8f.dip2px(), 0, 8f.dip2px(), 0) } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/home/UserVideoHistoryAdapter.kt b/app/src/main/java/com/gh/gamecenter/personalhome/home/UserVideoHistoryAdapter.kt index 70bd302033..fae8c1c4af 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/home/UserVideoHistoryAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/home/UserVideoHistoryAdapter.kt @@ -6,12 +6,9 @@ import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import com.gh.common.constant.ItemViewType import com.gh.common.util.DirectUtils -import com.gh.common.util.ImageUtils -import com.gh.common.util.toSimpleCount import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter -import com.gh.gamecenter.databinding.VideoItemBinding import com.gh.gamecenter.databinding.VideoNewItemBinding import com.gh.gamecenter.entity.MyVideoEntity import com.gh.gamecenter.video.VideoItemViewHolder @@ -51,8 +48,9 @@ class UserVideoHistoryAdapter(context: Context, val mViewModel: UserVideoHistory override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { if (holder is VideoItemViewHolder) { val entity = mEntityList[position] - ImageUtils.display(holder.binding.videoCover, entity.poster) - holder.binding.videoLikeCount.text = entity.vote.toSimpleCount() + holder.binding.video = entity + holder.binding.userIcon.visibility = View.GONE + holder.binding.userName.visibility = View.GONE holder.itemView.setOnClickListener { DirectUtils.directToVideoDetail(mContext, entity.id, VideoDetailContainerViewModel.Location.USER_VIDEO.value, false, path = "个人主页-视频") } diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/home/UserVideoHistoryFragment.kt b/app/src/main/java/com/gh/gamecenter/personalhome/home/UserVideoHistoryFragment.kt index c856ae4eb2..7c62e1244d 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/home/UserVideoHistoryFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/home/UserVideoHistoryFragment.kt @@ -47,12 +47,12 @@ class UserVideoHistoryFragment : ListFragment> @Query("select * from MyVideoEntity where videoStreamRecord=1 order by time desc limit :pageSize offset :offset ") diff --git a/app/src/main/java/com/gh/gamecenter/video/game/GameVideoAdapter.kt b/app/src/main/java/com/gh/gamecenter/video/game/GameVideoAdapter.kt index 1becea7816..1a630e9caa 100644 --- a/app/src/main/java/com/gh/gamecenter/video/game/GameVideoAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/video/game/GameVideoAdapter.kt @@ -22,7 +22,7 @@ class GameVideoAdapter(context: Context, private val mViewModel: NormalListViewModel, private val mEntrance: String, private val mSortValue: String?, - val gameId:String) : ListAdapter(context) { + val gameId: String) : ListAdapter(context) { override fun getItemViewType(position: Int): Int { if (position == itemCount - 1) return ItemViewType.ITEM_FOOTER @@ -51,8 +51,7 @@ class GameVideoAdapter(context: Context, override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { if (holder is VideoItemViewHolder) { val entity = mEntityList[position] - ImageUtils.display(holder.binding.videoCover, entity.poster) - holder.binding.videoLikeCount.text = entity.vote.toSimpleCount() + holder.binding.video = entity holder.itemView.setOnClickListener { var fromLocation = "" var path = "" diff --git a/app/src/main/java/com/gh/gamecenter/video/game/GameVideoFragment.kt b/app/src/main/java/com/gh/gamecenter/video/game/GameVideoFragment.kt index 2447e7489e..c9fa06d6ee 100644 --- a/app/src/main/java/com/gh/gamecenter/video/game/GameVideoFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/video/game/GameVideoFragment.kt @@ -25,17 +25,18 @@ class GameVideoFragment : ListFragmentPx#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91B%lKT1ONa40RR91CjbBd0Bx?BEC2uldr3q=R9Fe^m``lXK@`Wks3?aj zTCJv6Ld2hwTM0pk#El4t5(f^nhdN2q6D|(oK%ybh11AR(5vfC?Nz+J(q(YErY>HBn zUMi~E_4#ggHgA9Cw>!JtrXpVQ*?BYb-kbNEnVtFVR#g0Dk|;KxR4OH(^{^GzKy8K} zlwaU83_?#Lkx+ehghZ;L14bZ3rZF0TLs0aC$3BIEK|72=sqz%ZZLx!xj=Y%@WF@xU zu*>*3bpoXy-h-B@3L0QFY=o$!Xy{-W&qX_e>Lk+yLlBid8ur8DxIpyDw+)6NDz|B< zjPv!j<4_N8B9Ro_H&fmiYQ(+@&caWy(iQ6z?Z8WW=CSoge+0{;wxM-=n_(2JoDTBG zqt$w$_k#AvjD#3#!G19&scXN*3kG#C4o;FN)$tz1^$=?hOu68cck)KSpwk#j-I>>+ zgic~!i;S_w8wR6Fu!mlc*Kmf7jL`sg6|UHj*>eaZogL3j=RVGi`>NBogklveP`wDz zS(PNtFY80R8`O_x+CES=VWV>@XMhbE0~O=&(A0HzmAbKY=Daqsq}~OWP$T+gcm@^o z^pTNuPN5u#Jk@;DSFGyujcx~B(rK|vU}s?18Dz?rlucmmBPQOemh4@$hll;nvVEi7 zoo(6_@7{gIGevT_a<63gCalg?o-6VjW6lM$!PNkZ(OdJ?E{Nl<1J z3fe;iSc+4jO+AgxDEm!&qmb;581%b(P(m2%NLc8c@{~0sKc;U{9vgKXF#WHvPr7>O zl1({>0;Nt{%~Y(A@FqI<8Ur1YSqYt?7kCu9I+Vy)o>sp;yh1X%sxF#N* + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/visit_history_video_bottom_bg.xml b/app/src/main/res/drawable/visit_history_video_bottom_bg.xml new file mode 100644 index 0000000000..1cc116bec2 --- /dev/null +++ b/app/src/main/res/drawable/visit_history_video_bottom_bg.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_user_history.xml b/app/src/main/res/layout/fragment_user_history.xml index 12070bacd2..6a56edba05 100644 --- a/app/src/main/res/layout/fragment_user_history.xml +++ b/app/src/main/res/layout/fragment_user_history.xml @@ -8,8 +8,7 @@ android:id="@+id/list_refresh" android:layout_width="match_parent" android:layout_height="match_parent" - android:layout_below="@id/filter" - android:layout_marginTop="-16dp"> + android:layout_below="@id/filter"> + + + + + + + + + + android:orientation="vertical" + android:background="@drawable/background_shape_white_radius_6"> - - - - + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"> + + + + + + + + + + + + + android:layout_margin="8dp" + android:ellipsize="end" + android:includeFontPadding="false" + android:lineSpacingExtra="7dp" + android:maxLines="2" + android:text="@{video.title}" + android:textColor="@color/text_333333" + android:textSize="13sp" + app:layout_constraintBottom_toTopOf="@+id/user_icon" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/video_cover_info" /> + + + From e75fb3a40db48bc6ddf8b95045b7d6ff4a9bab4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=8E=89=E4=B9=85?= <1484288157@qq.com> Date: Mon, 8 Jun 2020 11:36:33 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E8=A7=86=E9=A2=91=E5=90=88=E9=9B=86?= =?UTF-8?q?=E3=80=81=E6=B5=8F=E8=A7=88=E8=AE=B0=E5=BD=95=E3=80=81=E6=88=91?= =?UTF-8?q?=E7=9A=84=E6=94=B6=E8=97=8F=E8=A7=86=E9=A2=91=E7=82=B9=E5=87=BB?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=A4=B4=E5=83=8F=E6=98=B5=E7=A7=B0=E8=B7=B3?= =?UTF-8?q?=E8=BD=AC=E4=B8=AA=E4=BA=BA=E4=B8=BB=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/gh/gamecenter/collection/VideoAdapter.kt | 6 +++++- .../main/java/com/gh/gamecenter/collection/VideoFragment.kt | 2 +- .../java/com/gh/gamecenter/video/game/GameVideoAdapter.kt | 5 +++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/gh/gamecenter/collection/VideoAdapter.kt b/app/src/main/java/com/gh/gamecenter/collection/VideoAdapter.kt index 534ab7c41d..75d5754a5e 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/VideoAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/collection/VideoAdapter.kt @@ -15,7 +15,7 @@ import com.gh.gamecenter.video.VideoItemViewHolder import com.gh.gamecenter.video.detail.VideoDetailContainerViewModel class VideoAdapter(context: Context, - val mViewModel: VideoViewModel, val mVideoStyle: String) : ListAdapter(context) { + val mViewModel: VideoViewModel, val mVideoStyle: String, val mEntrance: String) : ListAdapter(context) { override fun getItemViewType(position: Int): Int { if (position == itemCount - 1) return ItemViewType.ITEM_FOOTER return ItemViewType.ITEM_BODY @@ -63,6 +63,10 @@ class VideoAdapter(context: Context, }) } } + holder.binding.userIcon.setOnClickListener { + DirectUtils.directToHomeActivity(mContext, entity.user.id, mEntrance, getPath()) + } + holder.binding.userName.setOnClickListener { holder.binding.userIcon.performClick() } } else if (holder is FooterViewHolder) { holder.initFooterViewHolder(mViewModel, mIsLoading, mIsNetworkError, mIsOver) } diff --git a/app/src/main/java/com/gh/gamecenter/collection/VideoFragment.kt b/app/src/main/java/com/gh/gamecenter/collection/VideoFragment.kt index c5d61592cc..50a6f2e946 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/VideoFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/collection/VideoFragment.kt @@ -18,7 +18,7 @@ class VideoFragment : ListFragment() { override fun provideListAdapter(): VideoAdapter { if (mAdapter == null) { - mAdapter = VideoAdapter(requireContext(), mViewModel!!, mVideoStyle) + mAdapter = VideoAdapter(requireContext(), mViewModel!!, mVideoStyle,mEntrance) } return mAdapter!! } diff --git a/app/src/main/java/com/gh/gamecenter/video/game/GameVideoAdapter.kt b/app/src/main/java/com/gh/gamecenter/video/game/GameVideoAdapter.kt index 1a630e9caa..87c52f5635 100644 --- a/app/src/main/java/com/gh/gamecenter/video/game/GameVideoAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/video/game/GameVideoAdapter.kt @@ -64,6 +64,11 @@ class GameVideoAdapter(context: Context, path = "视频合集-最新" } DirectUtils.directToVideoDetail(mContext, entity.id, fromLocation, false, gameId = gameId, entrance = mEntrance, path = path) + + holder.binding.userIcon.setOnClickListener { + DirectUtils.directToHomeActivity(mContext, entity.user.id, mEntrance, path) + } + holder.binding.userName.setOnClickListener { holder.binding.userIcon.performClick() } } } else if (holder is FooterViewHolder) { holder.initFooterViewHolder(mViewModel, mIsLoading, mIsNetworkError, mIsOver)