修改回答/文章草稿发布后的跳转逻辑

This commit is contained in:
kehaoyuan
2020-05-28 11:07:29 +08:00
parent cb28838b40
commit 2fd12d56ed
7 changed files with 18 additions and 6 deletions

View File

@ -159,6 +159,7 @@ public class EntranceUtils {
public static final String KEY_QA_ID = "qaId";
public static final String KEY_QA_COLLECTION_ID = "qaCollectionId";
public static final String KEY_SHOW_EDIT_DRAFT = "showEditDraft";
public static final String KEY_ARTICLE_OPEN_IN_NEW_PAGE = "openArticleInNewPage";
public static void jumpActivity(Context context, Bundle bundle) {
bundle.putBoolean(KEY_REQUIRE_REDIRECT, true);

View File

@ -151,6 +151,7 @@ class AnswerDraftAdapter extends ListAdapter<AnswerEntity> {
answerEntity.getQuestions(),
"",// 会自动获取草稿所以该数据可以不填
answerEntity.getCommunityName(),
true,
true));
}
});

View File

@ -593,13 +593,15 @@ class AnswerEditActivity : BaseRichEditorActivity(), KeyboardHeightObserver {
question: Questions?,
content: String?,
communityName: String?,
showEditDraft: Boolean = false): Intent {
showEditDraft: Boolean = false,
showInNewPage: Boolean = false): Intent {
val intent = Intent(context, AnswerEditActivity::class.java)
intent.putExtra(EntranceUtils.KEY_ANSWER_ID, answerId)
intent.putExtra(EntranceUtils.KEY_ANSWER_CONTENT, content)
intent.putExtra(EntranceUtils.KEY_COMMUNITY_NAME, communityName)
intent.putExtra(EntranceUtils.KEY_SHOW_EDIT_DRAFT, showEditDraft)
intent.putExtra(Questions::class.java.simpleName, question)
intent.putExtra(EntranceUtils.KEY_ANSWER_OPEN_IN_NEW_PAGE, showInNewPage)
return intent
}
}

View File

@ -47,7 +47,7 @@ class ArticleDraftFragment : ListFragment<ArticleDraftEntity, NormalListViewMode
id = it.articleId,
title = it.title,
community = it.community)
startActivity(ArticleEditActivity.getPatchIntent(requireContext(), detailEntity, it))
startActivity(ArticleEditActivity.getPatchIntent(requireContext(), detailEntity, it, true))
}
}
} else if (activity != null) {

View File

@ -104,6 +104,7 @@ class ArticleEditActivity : BaseRichEditorActivity() {
mViewModel = ViewModelProviders.of(this).get(ArticleEditViewModel::class.java)
mViewModel.detailEntity = intent.getParcelableExtra(ArticleDetailEntity::class.java.simpleName)
mViewModel.draftEntity = intent.getParcelableExtra(ArticleDraftEntity::class.java.simpleName)
mViewModel.openArticleInNewPage = intent.getBooleanExtra(EntranceUtils.KEY_ARTICLE_OPEN_IN_NEW_PAGE, false)
mGameNameTitle.text = Html.fromHtml(getString(R.string.article_edit_game_name))
mRichEditor.setOnTextChangeListener { t ->
@ -518,17 +519,22 @@ class ArticleEditActivity : BaseRichEditorActivity() {
}
@JvmStatic
fun getPatchIntent(context: Context, detailEntity: ArticleDetailEntity, draftEntity: ArticleDraftEntity? = null): Intent {
fun getPatchIntent(context: Context,
detailEntity: ArticleDetailEntity,
draftEntity: ArticleDraftEntity? = null,
showInNewPage: Boolean = false): Intent {
val intent = Intent(context, ArticleEditActivity::class.java)
intent.putExtra(ArticleDetailEntity::class.java.simpleName, detailEntity)
intent.putExtra(ArticleDraftEntity::class.java.simpleName, draftEntity)
intent.putExtra(EntranceUtils.KEY_ARTICLE_OPEN_IN_NEW_PAGE, showInNewPage)
return intent
}
@JvmStatic
fun getDraftIntent(context: Context, draftEntity: ArticleDraftEntity): Intent {
fun getDraftIntent(context: Context, draftEntity: ArticleDraftEntity, showInNewPage: Boolean = true): Intent {
val intent = Intent(context, ArticleEditActivity::class.java)
intent.putExtra(ArticleDraftEntity::class.java.simpleName, draftEntity)
intent.putExtra(EntranceUtils.KEY_ARTICLE_OPEN_IN_NEW_PAGE, showInNewPage)
return intent
}
}

View File

@ -63,6 +63,8 @@ class ArticleEditViewModel(application: Application) : AndroidViewModel(applicat
var title: String? = null
var content: String? = null
var openArticleInNewPage: Boolean = false
/**
* 获取默认标签和确定当前communityId
*/

View File

@ -59,13 +59,13 @@ class ArticleTagsSelectFragment : BaseFragment<String>() {
initTags()
mViewModel?.postArticle?.observe(this, Observer {
if (mViewModel?.detailEntity != null) {
if (mViewModel?.openArticleInNewPage == false) {
val intent = Intent()
intent.putExtra(ArticleDetailEntity::class.java.simpleName, mViewModel?.detailEntity)
activity?.setResult(Activity.RESULT_OK, intent)
} else {
activity?.setResult(Activity.RESULT_OK)
val articleId = JSONObject(it).getString("_id")
val articleId = mViewModel?.detailEntity?.id ?: JSONObject(it).getString("_id")
val intent = ArticleDetailActivity.getIntent(requireContext(),
mViewModel?.mSelectCommunityData!!,
articleId, mEntrance, "撰写文章")