diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 884393b974..f4f65152ef 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -682,6 +682,10 @@
android:name=".forum.list.ForumListActivity"
android:screenOrientation="portrait" />
+
+
implements ISyncAda
holder.itemView.setOnClickListener(v -> {
if (entity.getActive()) {
- mContext.startActivity(AnswerDetailActivity.getIntent(mContext, entity.getId(), mEntrance, path));
+// mContext.startActivity(AnswerDetailActivity.getIntent(mContext, entity.getId(), mEntrance, path));
+ mContext.startActivity(NewQuestionDetailActivity.getCommentIntent(mContext, entity.getQuestions().getId(), entity.getId(), mEntrance, path));
} else {
showDeleteDialog(entity.getId());
}
@@ -112,7 +115,8 @@ public class AnswerAdapter extends ListAdapter implements ISyncAda
});
viewHolder.getBinding().title.setOnClickListener(v -> {
Questions questions = entity.getQuestions();
- mContext.startActivity(QuestionsDetailActivity.getIntent(mContext, questions.getId(), mEntrance, path));
+// mContext.startActivity(QuestionsDetailActivity.getIntent(mContext, questions.getId(), mEntrance, path));
+ mContext.startActivity(NewQuestionDetailActivity.getIntent(mContext, questions.getId(), mEntrance, path));
});
break;
case ItemViewType.ITEM_FOOTER:
diff --git a/app/src/main/java/com/gh/gamecenter/entity/MeEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/MeEntity.kt
index f8718ab257..b7f4a94f79 100644
--- a/app/src/main/java/com/gh/gamecenter/entity/MeEntity.kt
+++ b/app/src/main/java/com/gh/gamecenter/entity/MeEntity.kt
@@ -52,6 +52,9 @@ class MeEntity(@SerializedName("is_community_voted")
@SerializedName("is_article_favorite")
var isArticleFavorite: Boolean = false,
+ @SerializedName("is_question_favorite")
+ var isQuestionFavorite : Boolean = false,
+
@SerializedName("is_toolkit_favorite")
var isToolkitFavorite: Boolean = false,
diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.kt
index c206e5ea71..e6bbf37c2f 100644
--- a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.kt
+++ b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.kt
@@ -63,7 +63,7 @@ import java.io.IOException
import java.util.*
import kotlin.collections.ArrayList
-class AnswerDetailFragment : NormalFragment() {
+open class AnswerDetailFragment : NormalFragment() {
@BindView(R.id.reuse_no_connection)
lateinit var mNoConn: View
@@ -126,7 +126,7 @@ class AnswerDetailFragment : NormalFragment() {
private var mRefreshFooter: AnswerDetailRefreshFooter? = null
private var mSkeletonScreen: SkeletonScreen? = null
- private lateinit var mBinding: FragmentAnswerDetailBinding
+ lateinit var mBinding: FragmentAnswerDetailBinding
lateinit var mViewModel: AnswerDetailViewModel
private lateinit var mContainerViewModel: AnswerDetailContainerViewModel
@@ -994,10 +994,14 @@ class AnswerDetailFragment : NormalFragment() {
private fun hideLoadingViewAndShowContent() {
mNoConn.visibility = View.GONE
- mBinding.bottomController.root.visibility = View.VISIBLE
+ mBinding.bottomController.root.visibility = if (shouldShowBottomController()) View.VISIBLE else View.GONE
mBinding.scrollView.visibility = View.VISIBLE
}
+ open fun shouldShowBottomController(): Boolean {
+ return true
+ }
+
@SuppressLint("SetTextI18n")
private fun updateQuestionView(question: Questions) {
val video = if (!question.videos.isNullOrEmpty()) question.videos[0] else null
diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/SimpleAnswerDetailActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/SimpleAnswerDetailActivity.kt
new file mode 100644
index 0000000000..71a9234155
--- /dev/null
+++ b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/SimpleAnswerDetailActivity.kt
@@ -0,0 +1,21 @@
+package com.gh.gamecenter.qa.answer.detail
+
+import android.content.Context
+import android.content.Intent
+import android.os.Bundle
+import com.gh.base.BaseActivity
+import com.gh.common.util.EntranceUtils
+import com.gh.gamecenter.NormalActivity
+
+class SimpleAnswerDetailActivity : NormalActivity() {
+
+ companion object {
+ fun getIntent(context: Context, answerId: String, entrance: String, path: String): Intent {
+ val bundle = Bundle()
+ bundle.putString(EntranceUtils.KEY_ANSWER_ID, answerId)
+ bundle.putString(EntranceUtils.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path))
+ bundle.putString(EntranceUtils.KEY_PATH, path)
+ return getTargetIntent(context, SimpleAnswerDetailActivity::class.java, SimpleAnswerDetailFragment::class.java, bundle)
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/SimpleAnswerDetailFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/SimpleAnswerDetailFragment.kt
new file mode 100644
index 0000000000..aad62b30cb
--- /dev/null
+++ b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/SimpleAnswerDetailFragment.kt
@@ -0,0 +1,19 @@
+package com.gh.gamecenter.qa.answer.detail
+
+import android.os.Bundle
+import android.view.View
+
+class SimpleAnswerDetailFragment : AnswerDetailFragment() {
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ mBinding.refreshLayout.isEnabled = false
+ mBinding.answerDetailTitleRl.visibility = View.GONE
+ mBinding.bottomController.root.visibility = View.GONE
+ mBinding.topPaddingView.visibility = View.GONE
+ mBinding.bottomShadowView.visibility = View.GONE
+ mBinding.bottomDividerView.visibility = View.GONE
+ }
+
+ override fun shouldShowBottomController(): Boolean = false
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/draft/ArticleDraftAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/article/draft/ArticleDraftAdapter.kt
index 8ca82e2700..75380b4aae 100644
--- a/app/src/main/java/com/gh/gamecenter/qa/article/draft/ArticleDraftAdapter.kt
+++ b/app/src/main/java/com/gh/gamecenter/qa/article/draft/ArticleDraftAdapter.kt
@@ -14,9 +14,9 @@ import com.gh.gamecenter.baselist.ListAdapter
import com.gh.gamecenter.databinding.CommunityArticleDraftItemBinding
import com.gh.gamecenter.qa.entity.ArticleDraftEntity
-class ArticleDraftAdapter(context: Context
- , private val deleteCallback: (ArticleDraftEntity) -> Unit
- , private val selectCallback: (ArticleDraftEntity) -> Unit) : ListAdapter(context) {
+class ArticleDraftAdapter(context: Context,
+ private val deleteCallback: (ArticleDraftEntity) -> Unit,
+ private val selectCallback: (ArticleDraftEntity) -> Unit) : ListAdapter(context) {
override fun areItemsTheSame(oldItem: ArticleDraftEntity, newItem: ArticleDraftEntity): Boolean {
return !TextUtils.isEmpty(oldItem.id) && oldItem.id == newItem.id
diff --git a/app/src/main/java/com/gh/gamecenter/qa/comment/base/BaseCommentAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/comment/base/BaseCommentAdapter.kt
index 9287b791fc..583f08421d 100644
--- a/app/src/main/java/com/gh/gamecenter/qa/comment/base/BaseCommentAdapter.kt
+++ b/app/src/main/java/com/gh/gamecenter/qa/comment/base/BaseCommentAdapter.kt
@@ -436,7 +436,27 @@ abstract class BaseCommentAdapter(context: Context,
//TODO:问题评论更多操作
private fun showQuestionCommentOption(view: View, binding: ItemArticleDetailCommentBinding, comment: CommentEntity, viewModel: BaseCommentViewModel, deleteCallBack: ((comment: CommentEntity) -> Unit)?) {
+ CommentHelper.showQuestionCommentOption(view,comment,viewModel.questionId,object :OnCommentOptionClickListener{
+ override fun onCommentOptionClick(entity: CommentEntity, option: String) {
+ when (option) {
+ "删除评论" -> {
+ DialogUtils.showNewAlertDialog(binding.moreIv.context, "提示", "删除评论后,评论下所有的回复都将被删除", "取消", "删除", null, {
+ })
+ }
+ "置顶" -> {
+ DialogUtils.showNewAlertDialog(binding.root.context, "提示", "是否将此条评论置顶?", "取消", "确认", null, Gravity.CENTER, false, {}, {
+
+ })
+ }
+ "取消置顶" -> {
+ DialogUtils.showNewAlertDialog(binding.root.context, "提示", "是否将此条评论取消置顶?", "取消", "确认", null, Gravity.CENTER, false, {}, {
+
+ })
+ }
+ }
+ }
+ })
}
private fun showVideoCommentOptions(view: View, binding: ItemArticleDetailCommentBinding, comment: CommentEntity, viewModel: BaseCommentViewModel, deleteCallBack: ((comment: CommentEntity) -> Unit)?) {
diff --git a/app/src/main/java/com/gh/gamecenter/qa/draft/CommunityDraftWrapperActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/draft/CommunityDraftWrapperActivity.kt
index 2d2cde3ad3..74272d938f 100644
--- a/app/src/main/java/com/gh/gamecenter/qa/draft/CommunityDraftWrapperActivity.kt
+++ b/app/src/main/java/com/gh/gamecenter/qa/draft/CommunityDraftWrapperActivity.kt
@@ -6,8 +6,8 @@ import android.os.Bundle
import androidx.fragment.app.Fragment
import com.gh.base.BaseActivity_TabLayout
import com.gh.gamecenter.qa.article.draft.ArticleDraftFragment
-import com.gh.gamecenter.qa.answer.draft.AnswerDraftFragment
import com.gh.gamecenter.qa.questions.draft.QuestionDraftFragment
+import com.gh.gamecenter.video.videomanager.VideoDraftFragment
class CommunityDraftWrapperActivity : BaseActivity_TabLayout() {
@@ -19,13 +19,13 @@ class CommunityDraftWrapperActivity : BaseActivity_TabLayout() {
override fun initFragmentList(fragments: MutableList) {
fragments.add(ArticleDraftFragment())
fragments.add(QuestionDraftFragment())
- fragments.add(AnswerDraftFragment())
+ fragments.add(VideoDraftFragment())
}
override fun initTabTitleList(tabTitleList: MutableList) {
tabTitleList.add("帖子草稿")
tabTitleList.add("问题草稿")
- tabTitleList.add("回答草稿")
+ tabTitleList.add("视频草稿")
}
companion object {
diff --git a/app/src/main/java/com/gh/gamecenter/qa/entity/QuestionsDetailEntity.kt b/app/src/main/java/com/gh/gamecenter/qa/entity/QuestionsDetailEntity.kt
index 0d9c460fd4..1c0000092e 100644
--- a/app/src/main/java/com/gh/gamecenter/qa/entity/QuestionsDetailEntity.kt
+++ b/app/src/main/java/com/gh/gamecenter/qa/entity/QuestionsDetailEntity.kt
@@ -41,6 +41,7 @@ data class QuestionsDetailEntity(
var tagActivityName: String = "",
var type: String = "",
var gameEntity: GameEntity? = null,
+ var time:TimeEntity = TimeEntity(),
//提交问题用
@SerializedName("draft_id")
var draftId: String = ""
diff --git a/app/src/main/java/com/gh/gamecenter/qa/myqa/MyAnswerAdapter.java b/app/src/main/java/com/gh/gamecenter/qa/myqa/MyAnswerAdapter.java
index 53ec5d94c0..201871bbb7 100644
--- a/app/src/main/java/com/gh/gamecenter/qa/myqa/MyAnswerAdapter.java
+++ b/app/src/main/java/com/gh/gamecenter/qa/myqa/MyAnswerAdapter.java
@@ -17,6 +17,7 @@ import com.gh.gamecenter.qa.answer.MyAnswerViewHolder;
import com.gh.gamecenter.qa.answer.detail.AnswerDetailActivity;
import com.gh.gamecenter.qa.entity.AnswerEntity;
import com.gh.gamecenter.qa.questions.detail.QuestionsDetailActivity;
+import com.gh.gamecenter.qa.questions.newdetail.NewQuestionDetailActivity;
import org.jetbrains.annotations.Nullable;
@@ -67,13 +68,22 @@ class MyAnswerAdapter extends ListAdapter implements ISyncAdapterH
answerViewHolder.bindItem(entity, mEntrance);
CommunityMyAnswerItemBinding binding = answerViewHolder.getBinding();
binding.imageContainer.bindData(entity, mEntrance, "");
- binding.title.setOnClickListener(v ->
- mContext.startActivity(QuestionsDetailActivity.getIntent(mContext,
- entity.getQuestions().getId(), mEntrance, "我的光环-我的问答-我的回答")));
+// binding.title.setOnClickListener(v ->
+// mContext.startActivity(QuestionsDetailActivity.getIntent(mContext,
+// entity.getQuestions().getId(), mEntrance, "我的光环-我的问答-我的回答")));
+//
+// holder.itemView.setOnClickListener(v ->
+// mContext.startActivity(AnswerDetailActivity.getIntent(mContext,
+// entity.getId(), mEntrance, "我的光环-我的问答-我的回答")));
- holder.itemView.setOnClickListener(v ->
- mContext.startActivity(AnswerDetailActivity.getIntent(mContext,
- entity.getId(), mEntrance, "我的光环-我的问答-我的回答")));
+ binding.title.setOnClickListener(v -> {
+ mContext.startActivity(NewQuestionDetailActivity.getIntent(mContext,
+ entity.getQuestions().getId(), mEntrance, "我的光环-我的问答-我的回答"));
+ });
+ holder.itemView.setOnClickListener(v -> {
+ mContext.startActivity(NewQuestionDetailActivity.getCommentIntent(mContext,
+ entity.getQuestions().getId(), entity.getId(), mEntrance, "我的光环-我的问答-我的回答"));
+ });
break;
case ItemViewType.ITEM_FOOTER:
diff --git a/app/src/main/java/com/gh/gamecenter/qa/myqa/MyAskWrapperFragment.java b/app/src/main/java/com/gh/gamecenter/qa/myqa/MyAskWrapperFragment.java
index 800b729c1e..eb99b2f3ed 100644
--- a/app/src/main/java/com/gh/gamecenter/qa/myqa/MyAskWrapperFragment.java
+++ b/app/src/main/java/com/gh/gamecenter/qa/myqa/MyAskWrapperFragment.java
@@ -27,16 +27,16 @@ public class MyAskWrapperFragment extends BaseFragment_TabLayout {
String entrance = null;
if (getArguments() != null) entrance = getArguments().getString(EntranceUtils.KEY_ENTRANCE);
- fragments.add(ConcernQuestionsFragment.getInstance(entrance));
- fragments.add(MyQuestionsFragment.getInstance(entrance));
+// fragments.add(ConcernQuestionsFragment.getInstance(entrance));
+// fragments.add(MyQuestionsFragment.getInstance(entrance));
fragments.add(MyAnswerFragment.getInstance(entrance));
fragments.add(MyArticleFragment.getInstance(entrance, UserManager.getInstance().getUserId()));
}
@Override
protected void initTabTitleList(List tabTitleList) {
- tabTitleList.add("关注问题");
- tabTitleList.add("我的问题");
+// tabTitleList.add("关注问题");
+// tabTitleList.add("我的问题");
tabTitleList.add("我的回答");
tabTitleList.add("我的帖子");
}
diff --git a/app/src/main/java/com/gh/gamecenter/qa/myqa/MyQuestionsAdapter.java b/app/src/main/java/com/gh/gamecenter/qa/myqa/MyQuestionsAdapter.java
index 6784514e52..fa468007de 100644
--- a/app/src/main/java/com/gh/gamecenter/qa/myqa/MyQuestionsAdapter.java
+++ b/app/src/main/java/com/gh/gamecenter/qa/myqa/MyQuestionsAdapter.java
@@ -17,6 +17,7 @@ import com.gh.gamecenter.databinding.CommunityQuestionItemBinding;
import com.gh.gamecenter.qa.entity.Questions;
import com.gh.gamecenter.qa.questions.CommunityQuestionViewHolder;
import com.gh.gamecenter.qa.questions.detail.QuestionsDetailActivity;
+import com.gh.gamecenter.qa.questions.newdetail.NewQuestionDetailActivity;
import kotlin.Pair;
@@ -62,7 +63,7 @@ public class MyQuestionsAdapter extends ListAdapter implements ISyncA
case ItemViewType.ITEM_BODY:
Questions questions = mEntityList.get(position);
((CommunityQuestionViewHolder) holder).bindMyQuestionViewHolder(questions,mEntrance,"我的光环-我的问答-我的问题");
- holder.itemView.setOnClickListener(v -> mContext.startActivity(QuestionsDetailActivity.getIntent(mContext, questions.getId(), mEntrance, "我的光环-我的问答-我的问题")));
+ holder.itemView.setOnClickListener(v -> mContext.startActivity(NewQuestionDetailActivity.getIntent(mContext, questions.getId(), mEntrance, "我的光环-我的问答-我的问题")));
break;
case ItemViewType.ITEM_FOOTER:
FooterViewHolder footerViewHolder = (FooterViewHolder) holder;
diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/NewQuestionDetailActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/NewQuestionDetailActivity.kt
index 6efd274d98..6099ca64a3 100644
--- a/app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/NewQuestionDetailActivity.kt
+++ b/app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/NewQuestionDetailActivity.kt
@@ -57,5 +57,16 @@ class NewQuestionDetailActivity : NormalActivity() {
intent.putExtra(EntranceUtils.KEY_PATH, path)
return intent
}
+
+ @JvmStatic
+ fun getCommentIntent(context: Context, questionId: String, answerId: String, entrance: String, path: String): Intent {
+ val intent = Intent(context, NewQuestionDetailActivity::class.java)
+ intent.putExtra(EntranceUtils.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path))
+ intent.putExtra(EntranceUtils.KEY_QUESTIONS_ID, questionId)
+ intent.putExtra(EntranceUtils.KEY_ANSWER_ID, answerId)
+ intent.putExtra(EntranceUtils.KEY_SCROLL_TO_COMMENT_AREA, true)
+ intent.putExtra(EntranceUtils.KEY_PATH, path)
+ return intent
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/NewQuestionDetailFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/NewQuestionDetailFragment.kt
index aa9cbf7470..62fba38097 100644
--- a/app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/NewQuestionDetailFragment.kt
+++ b/app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/NewQuestionDetailFragment.kt
@@ -106,13 +106,18 @@ class NewQuestionDetailFragment : BaseCommentFragment()
var questionPageFinishedLiveData = MutableLiveData()
val moderatorsHideLiveData = MutableLiveData()
+ val favoriteLiveData = MutableLiveData()
val mFollowLiveData = MutableLiveData()
var questionDetail: QuestionsDetailEntity? = null
val followLiveData = mFollowLiveData
@@ -136,6 +140,28 @@ class NewQuestionDetailViewModel(application: Application, questionId: String =
})
}
+ @SuppressLint("CheckResult")
+ fun postFavoriteQuestion() {
+ if (questionDetail == null) return
+ val single = if (questionDetail?.me?.isQuestionFavorite == true) {
+ mApi.deleteFavoriteQuestion(UserManager.getInstance().userId, questionId)
+ } else {
+ mApi.favoriteQuestion(UserManager.getInstance().userId, questionId)
+ }
+ single.compose(singleToMain())
+ .subscribe(object : BiResponse() {
+ override fun onSuccess(data: ResponseBody) {
+ if (questionDetail?.me?.isQuestionFavorite == true) {
+ ToastUtils.showToast("取消收藏")
+ } else {
+ ToastUtils.showToast("收藏成功")
+ }
+ questionDetail?.me?.isQuestionFavorite = questionDetail?.me?.isQuestionFavorite != true
+ favoriteLiveData.postValue(true)
+ }
+ })
+ }
+
class Factory(private val application: Application,
private val questionId: String = "",
private val communityId: String = "") : ViewModelProvider.NewInstanceFactory() {
diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/QuestionDetailContentViewHolder.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/QuestionDetailContentViewHolder.kt
index 6b0107c931..38f2433120 100644
--- a/app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/QuestionDetailContentViewHolder.kt
+++ b/app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/QuestionDetailContentViewHolder.kt
@@ -83,12 +83,11 @@ class QuestionDetailContentViewHolder(var binding: ItemArticleDetailContentBindi
if (richEditor.currentContent != question.description) {
richEditor.setHtml(question.description, true)
}
-
-// if (question.time.create == question.time.edit) {
-// releaseTimeTv.text = String.format("发布于%s", NewsUtils.getFormattedTime(question.time.create))
-// } else {
-// releaseTimeTv.text = String.format("发布于%s 最后编辑于%s", NewsUtils.getFormattedTime(question.time.create), NewsUtils.getFormattedTime(question.time.edit))
-// }
+ if (question.time.create == question.time.edit) {
+ releaseTimeTv.text = String.format("发布于%s", NewsUtils.getFormattedTime(question.time.create))
+ } else {
+ releaseTimeTv.text = String.format("发布于%s 最后编辑于%s", NewsUtils.getFormattedTime(question.time.create), NewsUtils.getFormattedTime(question.time.edit))
+ }
richEditor.visibility = View.VISIBLE
question.community.game?.let {
gameName.text = question.community.name
diff --git a/app/src/main/java/com/gh/gamecenter/qa/video/publish/VideoPublishActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/video/publish/VideoPublishActivity.kt
index 29716d98d9..078bc921bc 100644
--- a/app/src/main/java/com/gh/gamecenter/qa/video/publish/VideoPublishActivity.kt
+++ b/app/src/main/java/com/gh/gamecenter/qa/video/publish/VideoPublishActivity.kt
@@ -10,6 +10,7 @@ import com.gh.gamecenter.NormalActivity
import com.gh.gamecenter.R
import com.gh.gamecenter.entity.CommunityEntity
import com.gh.gamecenter.entity.ForumVideoEntity
+import com.gh.gamecenter.entity.VideoDraftEntity
import com.gh.gamecenter.qa.BbsType
class VideoPublishActivity : NormalActivity() {
@@ -40,6 +41,15 @@ class VideoPublishActivity : NormalActivity() {
bundle.putString(EntranceUtils.KEY_PATH, path)
return getTargetIntent(context, VideoPublishActivity::class.java, VideoPublishFragment::class.java, bundle)
}
+
+ @JvmStatic
+ fun getDraftIntent(context: Context, draftEntity: VideoDraftEntity, entrance: String, path: String): Intent {
+ val bundle = Bundle()
+ bundle.putParcelable(VideoDraftEntity::class.java.simpleName, draftEntity)
+ bundle.putString(EntranceUtils.KEY_ENTRANCE, ToolBarActivity.mergeEntranceAndPath(entrance, path))
+ bundle.putString(EntranceUtils.KEY_PATH, path)
+ return getTargetIntent(context, VideoPublishActivity::class.java, VideoPublishFragment::class.java, bundle)
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/gh/gamecenter/qa/video/publish/VideoPublishFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/video/publish/VideoPublishFragment.kt
index 23d3701c0e..52803ae1f1 100644
--- a/app/src/main/java/com/gh/gamecenter/qa/video/publish/VideoPublishFragment.kt
+++ b/app/src/main/java/com/gh/gamecenter/qa/video/publish/VideoPublishFragment.kt
@@ -124,11 +124,16 @@ class VideoPublishFragment : NormalFragment() {
private fun initData() {
val videoPatch = mViewModel.videoPatch
+ val videoDraft = mViewModel.videoDraft
when {
videoPatch != null -> {
setNavigationTitle("编辑视频")
setVideoPatch(videoPatch)
}
+ videoDraft != null -> {
+ setNavigationTitle("发视频")
+ setVideoDraft()
+ }
else -> {
setNavigationTitle("发视频")
PermissionHelper.checkStoragePermissionBeforeAction(requireActivity(), object : EmptyCallback {
@@ -213,6 +218,7 @@ class VideoPublishFragment : NormalFragment() {
}
}
}
+
private fun setVideoPatch(videoPatch: ForumVideoEntity) {
mMenuDraft.isVisible = false
mType = videoPatch.type
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 bd2b6e99f0..d94bc9b3dc 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
@@ -3033,4 +3033,16 @@ public interface ApiService {
*/
@GET("bbses/videos/{video_id}/recommends")
Observable> getRecommendVideo(@Path("video_id") String videoId, @Query("page") int page);
+
+ /**
+ * 添加问题收藏
+ */
+ @POST("users/{user_id}/favorites/questions/{question_id}")
+ Single favoriteQuestion(@Path("user_id") String userId, @Path("question_id") String questionId);
+
+ /**
+ * 取消问题收藏
+ */
+ @DELETE("users/{user_id}/favorites/questions/{question_id}")
+ Single deleteFavoriteQuestion(@Path("user_id") String userId, @Path("question_id") String questionId);
}
\ No newline at end of file
diff --git a/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoDraftAdapter.kt b/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoDraftAdapter.kt
index a3e5b014e2..9908a07cfa 100644
--- a/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoDraftAdapter.kt
+++ b/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoDraftAdapter.kt
@@ -1,14 +1,11 @@
package com.gh.gamecenter.video.videomanager
-import android.app.Activity
import android.content.Context
-import android.content.Intent
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.LinearLayout
import android.widget.TextView
-import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import com.gh.base.BaseRecyclerViewHolder
@@ -18,17 +15,13 @@ import com.gh.common.view.BugFixedPopupWindow
import com.gh.gamecenter.R
import com.gh.gamecenter.adapter.viewholder.FooterViewHolder
import com.gh.gamecenter.baselist.ListAdapter
-import com.gh.gamecenter.databinding.CommunityArticleDraftItemBinding
import com.gh.gamecenter.databinding.CommunityVideoDraftItemBinding
-import com.gh.gamecenter.databinding.VideoVerifyItemBinding
import com.gh.gamecenter.entity.VideoDraftEntity
-import com.gh.gamecenter.qa.article.draft.ArticleDraftViewHolder
-import com.gh.gamecenter.video.VideoVerifyItemViewHolder
-import com.gh.gamecenter.video.upload.view.UploadVideoActivity
class VideoDraftAdapter(context: Context,
private val mViewModel: VideoDraftViewModel,
- private val mEntrance: String) : ListAdapter(context) {
+ private val mEntrance: String,
+ private val selectCallback: (VideoDraftEntity) -> Unit) : ListAdapter(context) {
private val mPath = "草稿箱"
@@ -83,10 +76,7 @@ class VideoDraftAdapter(context: Context,
PermissionHelper.checkStoragePermissionBeforeAction(mContext,
object : EmptyCallback {
override fun onCallback() {
- val intent = Intent()
- intent.putExtra(VideoDraftEntity::class.java.simpleName, draftEntity)
- (mContext as AppCompatActivity).setResult(Activity.RESULT_OK, intent)
- (mContext as AppCompatActivity).finish()
+ selectCallback.invoke(draftEntity)
}
})
}
diff --git a/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoDraftFragment.kt b/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoDraftFragment.kt
index dadf705486..4b47adce31 100644
--- a/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoDraftFragment.kt
+++ b/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoDraftFragment.kt
@@ -1,8 +1,10 @@
package com.gh.gamecenter.video.videomanager
+import android.app.Activity
import android.content.Intent
import android.os.Bundle
import android.view.View
+import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView
@@ -13,6 +15,8 @@ import com.gh.common.view.GridSpacingItemDecoration
import com.gh.gamecenter.R
import com.gh.gamecenter.baselist.ListFragment
import com.gh.gamecenter.entity.VideoDraftEntity
+import com.gh.gamecenter.qa.draft.CommunityDraftWrapperActivity
+import com.gh.gamecenter.qa.video.publish.VideoPublishActivity
import com.gh.gamecenter.video.upload.view.UploadVideoActivity
class VideoDraftFragment : ListFragment() {
@@ -36,7 +40,16 @@ class VideoDraftFragment : ListFragment()
override fun provideListAdapter(): VideoDraftAdapter {
if (mAdapter == null) {
- mAdapter = VideoDraftAdapter(requireContext(), mListViewModel, mEntrance)
+ mAdapter = VideoDraftAdapter(requireContext(), mListViewModel, mEntrance) {
+ if (requireActivity() is CommunityDraftWrapperActivity) {
+ startActivity(VideoPublishActivity.getDraftIntent(requireContext(), it, mEntrance, "视频草稿"))
+ } else {
+ val intent = Intent()
+ intent.putExtra(VideoDraftEntity::class.java.simpleName, it)
+ requireActivity().setResult(Activity.RESULT_OK, intent)
+ requireActivity().finish()
+ }
+ }
}
return mAdapter!!
}