diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6c495c08f9..cb1beb80ca 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -397,6 +397,10 @@
android:name="com.gh.gamecenter.personalhome.video.MyVideoActivity"
android:screenOrientation = "portrait"/>
+
+
= Build.VERSION_CODES.LOLLIPOP) {
+ Window window = getWindow();
+ window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
+ window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
+ window.setStatusBarColor(color);
+ }
+ }
+
protected abstract boolean onNavigationIconClicked();
protected abstract boolean showDownloadMenu();
diff --git a/app/src/main/java/com/gh/common/util/EntranceUtils.java b/app/src/main/java/com/gh/common/util/EntranceUtils.java
index ca5b5307cc..99a64be550 100644
--- a/app/src/main/java/com/gh/common/util/EntranceUtils.java
+++ b/app/src/main/java/com/gh/common/util/EntranceUtils.java
@@ -118,6 +118,7 @@ public class EntranceUtils {
public static final String KEY_PATH_VIDEO = "pathVideo";
public static final String KEY_VIDEO_ID = "videoId";
public static final String KEY_DIRECT_COMMENT = "directComment";
+ public static final String KEY_SORT = "sort";
public static void jumpActivity(Context context, Bundle bundle) {
diff --git a/app/src/main/java/com/gh/common/util/Extensions.kt b/app/src/main/java/com/gh/common/util/Extensions.kt
index 3ae7ec31d4..080b4c2af3 100644
--- a/app/src/main/java/com/gh/common/util/Extensions.kt
+++ b/app/src/main/java/com/gh/common/util/Extensions.kt
@@ -300,10 +300,14 @@ fun TextView.setTextChangedListener(action: (s: CharSequence, start: Int, before
})
}
-fun Int.toColor() : Int{
+fun Int.toColor(): Int {
return HaloApp.getInstance().application.resources.getColor(this)
}
+fun Int.toSimpleCount(): String {
+ return NumberUtils.transSimpleCount(this)
+}
+
/**
* 测试用包裹
*/
diff --git a/app/src/main/java/com/gh/gamecenter/collection/CollectionWrapperFragment.java b/app/src/main/java/com/gh/gamecenter/collection/CollectionWrapperFragment.java
index 34139061d6..8fd4cd7cf3 100644
--- a/app/src/main/java/com/gh/gamecenter/collection/CollectionWrapperFragment.java
+++ b/app/src/main/java/com/gh/gamecenter/collection/CollectionWrapperFragment.java
@@ -33,6 +33,7 @@ public class CollectionWrapperFragment extends BaseFragment_TabLayout {
tabTitleList.add(getString(R.string.collection_article));
tabTitleList.add(getString(R.string.collection_toolkit));
tabTitleList.add(getString(R.string.collection_info));
+ tabTitleList.add("视频");
}
@Override
@@ -41,6 +42,7 @@ public class CollectionWrapperFragment extends BaseFragment_TabLayout {
fragments.add(CommunityArticleFragment.getInstance(CommunityArticleFragment.Type.COLLECTION));
fragments.add(new ToolsFragment());
fragments.add(ArticleFragment.getInstance(ArticleFragment.Type.COLLECTION));
+ fragments.add(new VideoFragment());
for (Fragment fragment : mFragmentsList) {
fragment.setArguments(getArguments());
}
diff --git a/app/src/main/java/com/gh/gamecenter/collection/VideoAdapter.kt b/app/src/main/java/com/gh/gamecenter/collection/VideoAdapter.kt
new file mode 100644
index 0000000000..5ddae29ad6
--- /dev/null
+++ b/app/src/main/java/com/gh/gamecenter/collection/VideoAdapter.kt
@@ -0,0 +1,54 @@
+package com.gh.gamecenter.collection
+
+import android.content.Context
+import android.view.View
+import android.view.ViewGroup
+import androidx.recyclerview.widget.RecyclerView
+import com.gh.common.constant.ItemViewType
+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.baselist.NormalListViewModel
+import com.gh.gamecenter.databinding.VideoItemBinding
+import com.gh.gamecenter.entity.MyVideoEntity
+import com.gh.gamecenter.video.VideoItemViewHolder
+
+class VideoAdapter(context: Context,
+ val mViewModel: NormalListViewModel) : ListAdapter(context) {
+ override fun getItemViewType(position: Int): Int {
+ if (position == itemCount - 1) return ItemViewType.ITEM_FOOTER
+ return ItemViewType.ITEM_BODY
+ }
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
+ val view: View
+ return when (viewType) {
+ ItemViewType.ITEM_FOOTER -> {
+ view = mLayoutInflater.inflate(R.layout.refresh_footerview, parent, false)
+ FooterViewHolder(view)
+ }
+ else -> {
+ view = mLayoutInflater.inflate(R.layout.video_item, parent, false)
+ return VideoItemViewHolder(VideoItemBinding.bind(view))
+ }
+ }
+ }
+
+ override fun getItemCount(): Int {
+ return if (mEntityList == null || mEntityList.isEmpty()) 0 else mEntityList.size + FOOTER_ITEM_COUNT
+
+ }
+
+ 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()
+ } else if (holder is FooterViewHolder) {
+ holder.initFooterViewHolder(mViewModel, mIsLoading, mIsNetworkError, mIsOver)
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/gh/gamecenter/collection/VideoFragment.kt b/app/src/main/java/com/gh/gamecenter/collection/VideoFragment.kt
new file mode 100644
index 0000000000..b700ba661b
--- /dev/null
+++ b/app/src/main/java/com/gh/gamecenter/collection/VideoFragment.kt
@@ -0,0 +1,55 @@
+package com.gh.gamecenter.collection
+
+import android.os.Bundle
+import android.view.View
+import androidx.lifecycle.ViewModelProviders
+import androidx.recyclerview.widget.GridLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import com.gh.common.util.dip2px
+import com.gh.common.view.GridSpacingItemDecoration
+import com.gh.gamecenter.baselist.ListFragment
+import com.gh.gamecenter.baselist.NormalListViewModel
+import com.gh.gamecenter.entity.MyVideoEntity
+import com.gh.gamecenter.manager.UserManager
+import com.gh.gamecenter.retrofit.RetrofitManager
+import com.halo.assistant.HaloApp
+import io.reactivex.Observable
+
+class VideoFragment : ListFragment>() {
+ private var mAdapter: VideoAdapter? = null
+
+ override fun provideListAdapter(): VideoAdapter {
+ if (mAdapter == null) {
+ mAdapter = VideoAdapter(context!!, mListViewModel)
+ }
+ return mAdapter!!
+ }
+
+ override fun getItemDecoration(): RecyclerView.ItemDecoration {
+ return GridSpacingItemDecoration(3, 2F.dip2px(), false)
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ val gridLayoutManager = GridLayoutManager(context, 3)
+ gridLayoutManager.spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
+ override fun getSpanSize(position: Int): Int {
+ return if (position == mAdapter!!.itemCount - 1) {
+ 3
+ } else {
+ 1
+ }
+ }
+ }
+ mListRv.layoutManager = gridLayoutManager
+ }
+
+ override fun provideListViewModel(): NormalListViewModel {
+ val factory = NormalListViewModel.Factory(HaloApp.getInstance().application, this)
+ return ViewModelProviders.of(this, factory).get(NormalListViewModel::class.java) as NormalListViewModel
+ }
+
+ override fun provideDataObservable(page: Int): Observable> {
+ return RetrofitManager.getInstance(context).api.getCollectionVideo(UserManager.getInstance().userId)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/gh/gamecenter/entity/GameVideoInfo.kt b/app/src/main/java/com/gh/gamecenter/entity/GameVideoInfo.kt
new file mode 100644
index 0000000000..27ad076b7c
--- /dev/null
+++ b/app/src/main/java/com/gh/gamecenter/entity/GameVideoInfo.kt
@@ -0,0 +1,12 @@
+package com.gh.gamecenter.entity
+
+import com.google.gson.annotations.SerializedName
+
+data class GameVideoInfo(@SerializedName("game_name")
+ val gameName: String = "",
+ @SerializedName("game_icon")
+ val gameIcon: String = "",
+ @SerializedName("video_count")
+ val videoCount: Int = 0,
+ @SerializedName("vote_count")
+ val likeCount: Int = 0)
\ No newline at end of file
diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.java
index fb9fb4b3b8..17ddf02547 100644
--- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.java
+++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.java
@@ -44,6 +44,7 @@ import com.gh.common.util.SPUtils;
import com.gh.common.util.ShareUtils;
import com.gh.common.view.DrawableView;
import com.gh.download.DownloadManager;
+import com.gh.gamecenter.BuildConfig;
import com.gh.gamecenter.R;
import com.gh.gamecenter.SuggestionActivity;
import com.gh.gamecenter.adapter.viewholder.DetailViewHolder;
@@ -64,6 +65,7 @@ import com.gh.gamecenter.manager.PackagesManager;
import com.gh.gamecenter.mvvm.Status;
import com.gh.gamecenter.normal.NormalFragment;
import com.gh.gamecenter.suggest.SuggestType;
+import com.gh.gamecenter.video.game.GameVideoActivity;
import com.google.android.material.appbar.AppBarLayout;
import com.halo.assistant.HaloApp;
import com.lightgame.adapter.BaseFragmentPagerAdapter;
@@ -682,6 +684,11 @@ public class GameDetailFragment extends NormalFragment {
ratingScoreAverage.setTextSize(10F);
}
+ if (BuildConfig.DEBUG) {
+ ratingScoreContainer.setOnClickListener(v -> {
+ startActivity(GameVideoActivity.getIntent(getContext(), mGameEntity.getId()));
+ });
+ }
}
@Override
diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/video/MyVideoAdapter.kt b/app/src/main/java/com/gh/gamecenter/personalhome/video/MyVideoAdapter.kt
index c52c831ae4..29dda7c718 100644
--- a/app/src/main/java/com/gh/gamecenter/personalhome/video/MyVideoAdapter.kt
+++ b/app/src/main/java/com/gh/gamecenter/personalhome/video/MyVideoAdapter.kt
@@ -6,11 +6,11 @@ import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.gh.common.constant.ItemViewType
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.baselist.NormalListViewModel
-import com.gh.gamecenter.databinding.VideoDraftItemBinding
import com.gh.gamecenter.databinding.VideoItemBinding
import com.gh.gamecenter.entity.MyVideoEntity
import com.gh.gamecenter.video.VideoItemViewHolder
@@ -47,7 +47,7 @@ class MyVideoAdapter(context: Context,
if (holder is VideoItemViewHolder) {
val entity = mEntityList[position]
ImageUtils.display(holder.binding.videoCover, entity.poster)
- holder.binding.videoLikeCount.text = entity.vote.toString()
+ holder.binding.videoLikeCount.text = entity.vote.toSimpleCount()
} else if (holder is FooterViewHolder) {
holder.initFooterViewHolder(mViewModel, mIsLoading, mIsNetworkError, mIsOver)
}
diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java b/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java
index c2ddf3f6c3..3076534d76 100644
--- a/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java
+++ b/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java
@@ -10,6 +10,7 @@ import com.gh.gamecenter.entity.FollowersOrFansEntity;
import com.gh.gamecenter.entity.GameDetailEntity;
import com.gh.gamecenter.entity.GameDigestEntity;
import com.gh.gamecenter.entity.GameEntity;
+import com.gh.gamecenter.entity.GameVideoInfo;
import com.gh.gamecenter.entity.ImageInfoEntity;
import com.gh.gamecenter.entity.LibaoDetailEntity;
import com.gh.gamecenter.entity.LibaoEntity;
@@ -1903,6 +1904,24 @@ public interface ApiService {
@GET("users/{user_id}/videos")
Observable> getMyVideo(@Path("user_id") String userId);
+ /**
+ * 获取用户的视频收藏列表
+ */
+ @GET("users/{user_id}/favorites/videos")
+ Observable> getCollectionVideo(@Path("user_id") String userId);
+
+ /**
+ * 获取游戏视频合集
+ */
+ @GET("games/{game_id}/videos")
+ Observable> getGameVideo(@Path("game_id") String gameId, @Query("sort") String sort);
+
+ /**
+ * 获取游戏视频相关信息
+ */
+ @GET("games/{game_id}/video_infos")
+ Single getGameVideoInfo(@Path("game_id") String gameId);
+
/**
* 记录用户成功安装应用(用于玩过的游戏)
*/
diff --git a/app/src/main/java/com/gh/gamecenter/video/game/GameVideoActivity.kt b/app/src/main/java/com/gh/gamecenter/video/game/GameVideoActivity.kt
new file mode 100644
index 0000000000..4f9b64532a
--- /dev/null
+++ b/app/src/main/java/com/gh/gamecenter/video/game/GameVideoActivity.kt
@@ -0,0 +1,95 @@
+package com.gh.gamecenter.video.game
+
+import android.content.Context
+import android.content.Intent
+import android.graphics.Color
+import android.os.Bundle
+import androidx.databinding.DataBindingUtil
+import androidx.fragment.app.Fragment
+import androidx.lifecycle.Observer
+import androidx.lifecycle.ViewModelProviders
+import androidx.work.ListenableWorker
+import com.gh.base.BaseActivity
+import com.gh.base.adapter.FragmentAdapter
+import com.gh.common.util.*
+import com.gh.gamecenter.R
+import com.gh.gamecenter.databinding.ActivityVideoGameBinding
+import com.gh.gamecenter.mvvm.Status
+
+class GameVideoActivity : BaseActivity() {
+
+ private lateinit var mBinding: ActivityVideoGameBinding
+ private lateinit var mViewModel: GameVideoViewModel
+
+ override fun getLayoutId(): Int {
+ return R.layout.activity_video_game
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ // toolbar & status bar
+ setNavigationTitle("视频合集")
+ setStatusBarColor(R.color.text_181927.toColor())
+ mToolbar.setBackgroundColor(R.color.text_181927.toColor())
+ mTitleTv.setTextColor(Color.WHITE)
+
+ // viewpager & tab content
+ val gameId = intent.getStringExtra(EntranceUtils.KEY_GAMEID)
+ val titles = arrayListOf("最热", "最新")
+ val fragments = ArrayList()
+
+ val hottest = GameVideoFragment()
+ val hottestBundle = Bundle()
+ hottestBundle.putString(EntranceUtils.KEY_GAMEID, gameId)
+ hottestBundle.putString(EntranceUtils.KEY_SORT, "vote_recently:-1")
+ hottest.arguments = hottestBundle
+ fragments.add(hottest)
+
+ val newest = GameVideoFragment()
+ val newestBundle = Bundle()
+ newestBundle.putString(EntranceUtils.KEY_GAMEID, gameId)
+ newestBundle.putString(EntranceUtils.KEY_SORT, "time.upload:-1")
+ newest.arguments = newestBundle
+ fragments.add(newest)
+
+ // view
+ mBinding = DataBindingUtil.bind(mContentView)!!
+ mBinding.viewpager.offscreenPageLimit = fragments.size
+ mBinding.viewpager.adapter = FragmentAdapter(supportFragmentManager, fragments, titles)
+ mBinding.tabLayout.setupWithViewPager(mBinding.viewpager)
+ mBinding.tabIndicator.setupWithTabLayout(mBinding.tabLayout)
+ mBinding.tabIndicator.setupWithViewPager(mBinding.viewpager)
+ mBinding.tabIndicator.setIndicatorWidth(20)
+
+ // view model
+ val factory = GameVideoViewModel.Factory(application, gameId)
+ mViewModel = ViewModelProviders.of(this, factory).get(GameVideoViewModel::class.java)
+ mViewModel.gameViewInfo.observeNonNull(this, callback = {
+ if (it.status == Status.SUCCESS) {
+ ImageUtils.displayIcon(mBinding.gameIcon, it.data!!.gameIcon)
+ mBinding.gameName.text = it.data.gameName
+ mBinding.likeCount.text = getString(
+ R.string.game_video_count,
+ "获赞",
+ NumberUtils.transSimpleCount(it.data.likeCount)).fromHtml()
+ mBinding.videoCount.text = getString(
+ R.string.game_video_count,
+ "视频",
+ NumberUtils.transSimpleCount(it.data.videoCount)).fromHtml()
+ } else if (it.status == Status.ERROR) {
+ // do something
+ }
+ })
+ }
+
+ companion object {
+
+ @JvmStatic
+ fun getIntent(context: Context, gameId: String): Intent {
+ val intent = Intent(context, GameVideoActivity::class.java)
+ intent.putExtra(EntranceUtils.KEY_GAMEID, gameId)
+ return intent
+ }
+ }
+}
\ No newline at end of file
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
new file mode 100644
index 0000000000..66fef50b64
--- /dev/null
+++ b/app/src/main/java/com/gh/gamecenter/video/game/GameVideoAdapter.kt
@@ -0,0 +1,54 @@
+package com.gh.gamecenter.video.game
+
+import android.content.Context
+import android.view.View
+import android.view.ViewGroup
+import androidx.recyclerview.widget.RecyclerView
+import com.gh.common.constant.ItemViewType
+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.baselist.NormalListViewModel
+import com.gh.gamecenter.databinding.VideoItemBinding
+import com.gh.gamecenter.entity.MyVideoEntity
+import com.gh.gamecenter.video.VideoItemViewHolder
+
+class GameVideoAdapter(context: Context,
+ val mViewModel: NormalListViewModel): ListAdapter(context){
+
+ override fun getItemViewType(position: Int): Int {
+ if (position == itemCount -1) return ItemViewType.ITEM_FOOTER
+ return ItemViewType.ITEM_BODY
+ }
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
+ val view: View
+ return when (viewType) {
+ ItemViewType.ITEM_FOOTER -> {
+ view = mLayoutInflater.inflate(R.layout.refresh_footerview, parent, false)
+ FooterViewHolder(view)
+ }
+ else -> {
+ view = mLayoutInflater.inflate(R.layout.video_item, parent, false)
+ return VideoItemViewHolder(VideoItemBinding.bind(view))
+ }
+ }
+ }
+
+ override fun getItemCount(): Int {
+ return if (mEntityList == null || mEntityList.isEmpty()) 0 else mEntityList.size + FOOTER_ITEM_COUNT
+
+ }
+
+ 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()
+ } else if (holder is FooterViewHolder) {
+ holder.initFooterViewHolder(mViewModel, mIsLoading, mIsNetworkError, mIsOver)
+ }
+ }
+}
\ No newline at end of file
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
new file mode 100644
index 0000000000..17b4cbc7a5
--- /dev/null
+++ b/app/src/main/java/com/gh/gamecenter/video/game/GameVideoFragment.kt
@@ -0,0 +1,58 @@
+package com.gh.gamecenter.video.game
+
+import android.os.Bundle
+import android.view.View
+import androidx.lifecycle.ViewModelProviders
+import androidx.recyclerview.widget.GridLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import com.gh.common.util.EntranceUtils
+import com.gh.common.util.dip2px
+import com.gh.common.view.GridSpacingItemDecoration
+import com.gh.gamecenter.baselist.ListFragment
+import com.gh.gamecenter.baselist.NormalListViewModel
+import com.gh.gamecenter.entity.MyVideoEntity
+import com.gh.gamecenter.retrofit.RetrofitManager
+import com.halo.assistant.HaloApp
+import io.reactivex.Observable
+
+class GameVideoFragment : ListFragment>() {
+ private var mAdapter: GameVideoAdapter?= null
+
+ override fun provideListAdapter(): GameVideoAdapter {
+ if (mAdapter == null) {
+ mAdapter = GameVideoAdapter(context!!, mListViewModel)
+ }
+ return mAdapter!!
+ }
+
+ override fun getItemDecoration(): RecyclerView.ItemDecoration {
+ return GridSpacingItemDecoration(3, 2F.dip2px(), false)
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ val gridLayoutManager = GridLayoutManager(context, 3)
+ gridLayoutManager.spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
+ override fun getSpanSize(position: Int): Int {
+ return if (position == mAdapter!!.itemCount - 1) {
+ 3
+ } else {
+ 1
+ }
+ }
+ }
+ mListRv.layoutManager = gridLayoutManager
+ }
+
+ override fun provideListViewModel(): NormalListViewModel {
+ val factory = NormalListViewModel.Factory(HaloApp.getInstance().application, this)
+ return ViewModelProviders.of(this, factory).get(NormalListViewModel::class.java) as NormalListViewModel
+ }
+
+ override fun provideDataObservable(page: Int): Observable> {
+ val api = RetrofitManager.getInstance(context).api
+ val gameId = arguments?.getString(EntranceUtils.KEY_GAMEID)
+ val sort = arguments?.getString(EntranceUtils.KEY_SORT)
+ return api.getGameVideo(gameId, sort)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/gh/gamecenter/video/game/GameVideoViewModel.kt b/app/src/main/java/com/gh/gamecenter/video/game/GameVideoViewModel.kt
new file mode 100644
index 0000000000..f390801fce
--- /dev/null
+++ b/app/src/main/java/com/gh/gamecenter/video/game/GameVideoViewModel.kt
@@ -0,0 +1,48 @@
+package com.gh.gamecenter.video.game
+
+import android.annotation.SuppressLint
+import android.app.Application
+import androidx.lifecycle.AndroidViewModel
+import androidx.lifecycle.MutableLiveData
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.ViewModelProvider
+import com.gh.gamecenter.entity.GameVideoInfo
+import com.gh.gamecenter.mvvm.Resource
+import com.gh.gamecenter.retrofit.BiResponse
+import com.gh.gamecenter.retrofit.RetrofitManager
+import io.reactivex.android.schedulers.AndroidSchedulers
+import io.reactivex.schedulers.Schedulers
+
+class GameVideoViewModel(application: Application, val gameId: String) : AndroidViewModel(application) {
+
+ val gameViewInfo = MutableLiveData>()
+
+ init {
+ getGameVideoInfo()
+ }
+
+ @SuppressLint("CheckResult")
+ private fun getGameVideoInfo() {
+ RetrofitManager
+ .getInstance(getApplication())
+ .api.getGameVideoInfo(gameId)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(object : BiResponse() {
+ override fun onSuccess(data: GameVideoInfo) {
+ gameViewInfo.postValue(Resource.success(data))
+ }
+
+ override fun onFailure(exception: Exception) {
+ gameViewInfo.postValue(Resource.error(null))
+ }
+ })
+ }
+
+ class Factory(private val mApplication: Application,
+ private val gameId: String) : ViewModelProvider.NewInstanceFactory() {
+ override fun create(modelClass: Class): T {
+ return GameVideoViewModel(mApplication, gameId) as T
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_video_game.xml b/app/src/main/res/layout/activity_video_game.xml
new file mode 100644
index 0000000000..4b4e48f79d
--- /dev/null
+++ b/app/src/main/res/layout/activity_video_game.xml
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/reuse_toolbar.xml b/app/src/main/res/layout/reuse_toolbar.xml
index 1ef02cfd66..87d3f70b32 100644
--- a/app/src/main/res/layout/reuse_toolbar.xml
+++ b/app/src/main/res/layout/reuse_toolbar.xml
@@ -1,27 +1,26 @@
-
+
+ android:id="@+id/normal_toolbar"
+ style="@style/Base_ToolbarStyle"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ android:id="@+id/normal_title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerInParent="true"
+ android:layout_marginLeft="50dp"
+ android:layout_marginRight="50dp"
+ android:gravity="center"
+ android:singleLine="true"
+ android:textColor="@color/black"
+ android:textSize="15sp"
+ android:textStyle="bold" />
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 69152e06b7..80394b39ab 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -116,5 +116,6 @@
#F10000
#EA3333
#FF700F
+ #181927
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 5adb468e2d..e898ecf89d 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -629,4 +629,6 @@
视频上传服务准则
草稿保存之后!会关闭视频上传页面下次可在视频投稿-草稿箱]]>中继续上传
+
+ %1$s %2$s]]>