From 461efe710180bec6c8a2cf6f900f3bbbb5c1ea96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=8E=89=E4=B9=85?= <1484288157@qq.com> Date: Fri, 25 Dec 2020 15:40:13 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=85=89=E7=8E=AF=E5=8A=A9=E6=89=8BV4?= =?UTF-8?q?.6.0=E3=80=91=E8=AE=BA=E5=9D=9B=E5=8F=91=E5=B8=83=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E4=BC=98=E5=8C=96(201224-UI=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E6=B1=87=E6=80=BB)=20https://git.ghzs.com/pm?= =?UTF-8?q?/halo-app-issues/-/issues/1086?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gh/base/BaseRichEditorActivity.kt | 126 ++++++++++-------- .../personalhome/home/UserHistoryAdapter.kt | 10 ++ .../qa/article/edit/ArticleEditActivity.kt | 23 +++- .../qa/article/edit/ArticleEditViewModel.kt | 13 +- .../article/edit/ArticleTagsSelectFragment.kt | 4 +- .../qa/questions/edit/QuestionEditActivity.kt | 68 +++++++--- .../questions/edit/QuestionEditViewModel.kt | 12 +- .../qa/questions/edit/TagsSelectFragment.kt | 3 +- .../drawable/bg_editor_insert_add_label.xml | 2 +- .../activity_community_article_edit.xml | 3 + .../res/layout/activity_questions_edit.xml | 3 +- .../res/layout/editor_insert_container.xml | 3 +- .../res/layout/layout_menu_answer_post.xml | 30 ++--- dependencies.gradle | 2 +- 14 files changed, 195 insertions(+), 107 deletions(-) diff --git a/app/src/main/java/com/gh/base/BaseRichEditorActivity.kt b/app/src/main/java/com/gh/base/BaseRichEditorActivity.kt index 279b799dea..1d2e7db395 100644 --- a/app/src/main/java/com/gh/base/BaseRichEditorActivity.kt +++ b/app/src/main/java/com/gh/base/BaseRichEditorActivity.kt @@ -160,66 +160,14 @@ abstract class BaseRichEditorActivity : ToolBarActivity() { fun onRichClick(view: View) { when (view.id) { R.id.editor_font -> { - mEditorFont.isChecked = !mEditorFont.isChecked - mEditorLink.isChecked = false - val isShouldDelay = if (mEditorFont.isChecked) { - Util_System_Keyboard.hideSoftKeyboard(this) - true - } else { - Util_System_Keyboard.showSoftKeyboard(this) - false - } - mEditorInsertDetailContainer.postDelayed({ - mEditorInsertDetailContainer.visibility = if (mEditorFont.isChecked) View.VISIBLE else View.GONE - mEditorFontContainer.visibility = if (mEditorFont.isChecked) View.VISIBLE else View.GONE - mEditorParagraphContainer.visibility = if (mEditorFont.isChecked) View.VISIBLE else View.GONE - mEditorLinkContainer.visibility = View.GONE - mTagsContainer.visibility = View.GONE - mIsExtendedKeyboardShow = mEditorFont.isChecked - changeAddLabel(false) - }, if (isShouldDelay) 50 else 0L) + controlEditorFontContainer() } R.id.editor_link -> { - mEditorLink.isChecked = !mEditorLink.isChecked - mEditorFont.isChecked = false - val isShouldDelay = if (mEditorLink.isChecked) { - Util_System_Keyboard.hideSoftKeyboard(this) - true - } else { - Util_System_Keyboard.showSoftKeyboard(this) - false - } - mEditorInsertDetailContainer.postDelayed({ - mEditorInsertDetailContainer.visibility = if (mEditorLink.isChecked) View.VISIBLE else View.GONE - mEditorLinkContainer.visibility = if (mEditorLink.isChecked) View.VISIBLE else View.GONE - mEditorFontContainer.visibility = View.GONE - mEditorParagraphContainer.visibility = View.GONE - mTagsContainer.visibility = View.GONE - mIsExtendedKeyboardShow = mEditorLink.isChecked - changeAddLabel(false) - }, if (isShouldDelay) 50 else 0L) + controlEditorLinkContainer() } R.id.add_label_container -> { - mEditorLink.isChecked = false - mEditorFont.isChecked = false - val isShouldDelay = if (mEditorInsertDetailContainer.visibility == View.GONE) { - Util_System_Keyboard.hideSoftKeyboard(this) - changeAddLabel(true) - true - } else { - Util_System_Keyboard.showSoftKeyboard(this) - changeAddLabel(false) - false - } - mEditorInsertDetailContainer.postDelayed({ - mEditorInsertDetailContainer.visibility = if (mEditorInsertDetailContainer.visibility == View.GONE) View.VISIBLE else View.GONE - mTagsContainer.visibility = if (mEditorInsertDetailContainer.visibility == View.VISIBLE) View.VISIBLE else View.GONE - mEditorLinkContainer.visibility = View.GONE - mEditorFontContainer.visibility = View.GONE - mEditorParagraphContainer.visibility = View.GONE - mIsExtendedKeyboardShow = mEditorInsertDetailContainer.visibility == View.VISIBLE - }, if (isShouldDelay) 50 else 0L) + controlAddLabelContainer() } R.id.editor_font_bold -> { mEditorFontBold.isChecked = !mEditorFontBold.isChecked @@ -320,6 +268,70 @@ abstract class BaseRichEditorActivity : ToolBarActivity() { } } + private fun controlEditorFontContainer() { + mEditorFont.isChecked = !mEditorFont.isChecked + mEditorLink.isChecked = false + val isShouldDelay = if (mEditorFont.isChecked) { + Util_System_Keyboard.hideSoftKeyboard(this) + true + } else { + Util_System_Keyboard.showSoftKeyboard(this) + false + } + mEditorInsertDetailContainer.postDelayed({ + mEditorInsertDetailContainer.visibility = if (mEditorFont.isChecked) View.VISIBLE else View.GONE + mEditorFontContainer.visibility = if (mEditorFont.isChecked) View.VISIBLE else View.GONE + mEditorParagraphContainer.visibility = if (mEditorFont.isChecked) View.VISIBLE else View.GONE + mEditorLinkContainer.visibility = View.GONE + mTagsContainer.visibility = View.GONE + mIsExtendedKeyboardShow = mEditorFont.isChecked + changeAddLabel(false) + }, if (isShouldDelay) 50 else 0L) + } + + private fun controlEditorLinkContainer() { + mEditorLink.isChecked = !mEditorLink.isChecked + mEditorFont.isChecked = false + val isShouldDelay = if (mEditorLink.isChecked) { + Util_System_Keyboard.hideSoftKeyboard(this) + true + } else { + Util_System_Keyboard.showSoftKeyboard(this) + false + } + mEditorInsertDetailContainer.postDelayed({ + mEditorInsertDetailContainer.visibility = if (mEditorLink.isChecked) View.VISIBLE else View.GONE + mEditorLinkContainer.visibility = if (mEditorLink.isChecked) View.VISIBLE else View.GONE + mEditorFontContainer.visibility = View.GONE + mEditorParagraphContainer.visibility = View.GONE + mTagsContainer.visibility = View.GONE + mIsExtendedKeyboardShow = mEditorLink.isChecked + changeAddLabel(false) + }, if (isShouldDelay) 50 else 0L) + } + + fun controlAddLabelContainer() { + mEditorLink.isChecked = false + mEditorFont.isChecked = false + val isShouldDelay = if (mEditorInsertDetailContainer.visibility == View.GONE) { + Util_System_Keyboard.hideSoftKeyboard(this) + changeAddLabel(true) + true + } else { + Util_System_Keyboard.showSoftKeyboard(this) + changeAddLabel(false) + false + } + mEditorInsertDetailContainer.postDelayed({ + mEditorInsertDetailContainer.visibility = if (mEditorInsertDetailContainer.visibility == View.GONE) View.VISIBLE else View.GONE + mTagsContainer.visibility = if (mEditorInsertDetailContainer.visibility == View.VISIBLE) View.VISIBLE else View.GONE + mEditorLinkContainer.visibility = View.GONE + mEditorFontContainer.visibility = View.GONE + mEditorParagraphContainer.visibility = View.GONE + mIsExtendedKeyboardShow = mEditorInsertDetailContainer.visibility == View.VISIBLE + }, if (isShouldDelay) 50 else 0L) + } + override fun handleBackPressed(): Boolean { if (mIsExtendedKeyboardShow) { closeExtendedKeyboard() @@ -328,10 +340,6 @@ abstract class BaseRichEditorActivity : ToolBarActivity() { return super.handleBackPressed() } - override fun onPause() { - super.onPause() - closeExtendedKeyboard() - } private inner class OnCursorChangeListener { @JavascriptInterface diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/home/UserHistoryAdapter.kt b/app/src/main/java/com/gh/gamecenter/personalhome/home/UserHistoryAdapter.kt index 3f2589b54e..9eadff210e 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/home/UserHistoryAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/home/UserHistoryAdapter.kt @@ -1,6 +1,7 @@ package com.gh.gamecenter.personalhome.home import android.content.Context +import android.text.SpannableStringBuilder import android.util.SparseBooleanArray import android.view.View import android.view.ViewGroup @@ -86,6 +87,15 @@ class UserHistoryAdapter(context: Context, forumNameTv.text = entity?.community?.name userIcon.display(historyEntity.user?.border, historyEntity.user?.icon, historyEntity.user?.auth?.icon) executePendingBindings() + + if (historyEntity.type == "community_article" && historyEntity.getPassVideos().isNotEmpty() && historyEntity.images.isNotEmpty()) { + val title = questionTitle.text + val videoSpan = SpanBuilder(" ").image(1, " ".length, R.drawable.ic_article_video_label).build() + questionTitle.text = SpannableStringBuilder() + .append(title) + .append(videoSpan) + } + val command = getUserCommand(historyEntity.type, historyEntity.time, historyEntity.isEdit) userCommand.text = if (command.isNotEmpty()) command else historyEntity?.user?.name + "" diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleEditActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleEditActivity.kt index 1c67d91cd9..2241d4bffa 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleEditActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleEditActivity.kt @@ -17,6 +17,7 @@ import android.view.inputmethod.InputMethodManager import android.widget.* import androidx.core.content.ContextCompat import androidx.core.widget.NestedScrollView +import androidx.core.widget.doOnTextChanged import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProviders import androidx.recyclerview.widget.GridLayoutManager @@ -49,8 +50,8 @@ class ArticleEditActivity : BaseRichEditorActivity(), KeyboardHeightObserver { private val mForumIcon by bindView(R.id.forum_icon_view) private val mGameName by bindView(R.id.article_game_name) private val mEditTitle by bindView(R.id.article_edit_title) - private val mTitleContainer by bindView(R.id.title_container) private lateinit var mMenuDraft: MenuItem + private lateinit var mMenuPost: MenuItem private lateinit var mViewModel: ArticleEditViewModel @@ -105,12 +106,14 @@ class ArticleEditActivity : BaseRichEditorActivity(), KeyboardHeightObserver { super.onCreate(savedInstanceState) setToolbarMenu(R.menu.menu_answer_post) mMenuDraft = mToolbar.menu.findItem(R.id.menu_draft) + mMenuPost = mToolbar.menu.findItem(R.id.menu_answer_post) mToolbar.navigationIcon = null mMenuDraft.isVisible = true 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) + checkPostButtonEnable() mKeyboardHeightProvider = KeyboardHeightProvider(this) mEditTitle.post { mKeyboardHeightProvider?.start() } @@ -121,6 +124,7 @@ class ArticleEditActivity : BaseRichEditorActivity(), KeyboardHeightObserver { } else { mEditPlaceholder.visibility = View.VISIBLE } + checkPostButtonEnable() } mEditTitle.setOnTouchListener { v, event -> @@ -134,6 +138,10 @@ class ArticleEditActivity : BaseRichEditorActivity(), KeyboardHeightObserver { //setEditTextInputSpace() mEditTitle.filters = arrayOf(TextHelper.getFilter(50, "标题最多50个字")) + mEditTitle.doOnTextChanged { text, start, count, after -> + checkPostButtonEnable() + } + // 上传图片完成后的回调(本地图片) mViewModel.postImageLiveData.observe(this, Observer { if (it?.status == Status.SUCCESS) { @@ -446,6 +454,14 @@ class ArticleEditActivity : BaseRichEditorActivity(), KeyboardHeightObserver { return true } + private fun checkPostButtonEnable() { + mViewModel.content = getReplaceRealContent() + mMenuPost.actionView.postDelayed({ + val isEnabled = mViewModel.checkData() + mMenuPost.actionView.alpha = if (isEnabled) 1f else 0.6f + }, 100) + } + private fun showPatchBackDialog() { DialogUtils.showNewAlertDialog(this, "提示", "是否保存内容再退出?", "不保存", "保存并退出", null, Gravity.CENTER, { finish() @@ -494,6 +510,7 @@ class ArticleEditActivity : BaseRichEditorActivity(), KeyboardHeightObserver { beginTransaction.commitAllowingStateLoss() mViewModel.selectedTags.clear() mViewModel.selectedTagsChange.postValue(true) + checkPostButtonEnable() } override fun onMenuItemClick(item: MenuItem?): Boolean { @@ -540,6 +557,10 @@ class ArticleEditActivity : BaseRichEditorActivity(), KeyboardHeightObserver { override fun onKeyboardHeightChanged(height: Int, orientation: Int) { mIsKeyBoardShow = height > 0 + if (height > 0) { + changeAddLabel(false) + closeExtendedKeyboard() + } } override fun onResume() { diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleEditViewModel.kt b/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleEditViewModel.kt index 4b4886e796..d25c7c98da 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleEditViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleEditViewModel.kt @@ -87,7 +87,7 @@ class ArticleEditViewModel(application: Application) : AndroidViewModel(applicat * 检查标题是否符合规则 * 根据问题标题获取相应标签(问题编辑无需获取) */ - fun checkDataAndLoadTitleTag(isKeyBoardShow: Boolean = false) :Boolean{ + fun checkDataAndLoadTitleTag(isKeyBoardShow: Boolean = false): Boolean { if (mSelectCommunityData == null) { ToastUtils.showToast("请选择论坛", if (isKeyBoardShow) Gravity.CENTER else -1) return false @@ -119,6 +119,17 @@ class ArticleEditViewModel(application: Application) : AndroidViewModel(applicat return true } + fun checkData(): Boolean { + if (mSelectCommunityData == null) return false + if (TextUtils.isEmpty(title)) return false + title = title?.replace("\n", "") + if (title!!.length < QuestionEditViewModel.QUESTION_TITLE_MIN_LENGTH) return false + val articleContent = HtmlUtils.stripHtml(content).length + if (articleContent < MIN_ARTICLE_TEXT_LENGTH) return false + if (articleContent > MAX_ARTICLE_TEXT_LENGTH) return false + return true + } + /** * 根据问题标题获取相应标签(标签默认选中) */ diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleTagsSelectFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleTagsSelectFragment.kt index 404af36cd7..d2710739e9 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleTagsSelectFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleTagsSelectFragment.kt @@ -14,6 +14,7 @@ import android.widget.TextView import androidx.core.content.ContextCompat import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProviders +import com.gh.base.fragment.BaseDialogFragment import com.gh.base.fragment.BaseDialogWrapperFragment import com.gh.base.fragment.BaseFragment import com.gh.common.AppExecutor @@ -144,8 +145,9 @@ class ArticleTagsSelectFragment : BaseFragment() { } } dialog.setOnDismissListener { - Util_System_Keyboard.hideSoftKeyboard(activity) this.view?.visibility = View.VISIBLE + requireActivity().currentFocus?.clearFocus() + (requireActivity() as ArticleEditActivity).controlAddLabelContainer() } dialog.setCancelable(false) dialog.requestWindowFeature(Window.FEATURE_NO_TITLE) diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/edit/QuestionEditActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/edit/QuestionEditActivity.kt index f3788162b7..59e5bad96e 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/edit/QuestionEditActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/edit/QuestionEditActivity.kt @@ -65,6 +65,7 @@ class QuestionEditActivity : ToolBarActivity(), KeyboardHeightObserver { private var mUploadImageCancelDialog: Dialog? = null private var mKeyboardHeightProvider: KeyboardHeightProvider? = null private lateinit var picAdapter: QuestionsEditPicAdapter + private lateinit var mMenuPost: MenuItem private var mIsExtendedKeyboardShow = false private var mOffset = 0 private var mTagsSelectFragment: TagsSelectFragment? = null @@ -102,6 +103,7 @@ class QuestionEditActivity : ToolBarActivity(), KeyboardHeightObserver { setToolbarMenu(R.menu.menu_question_post) mToolbar.navigationIcon = null + mMenuPost = mToolbar.menu.findItem(R.id.menu_question_post) mViewModel = ViewModelProviders.of(this).get(QuestionEditViewModel::class.java) if (savedInstanceState != null) { val cacheTitle = savedInstanceState.getString(mSaveTitleKey) @@ -113,6 +115,7 @@ class QuestionEditActivity : ToolBarActivity(), KeyboardHeightObserver { mViewModel.picList.value = cacheImage // can not be use postValue } } + checkPostButtonEnable() mBinding = DataBindingUtil.bind(mContentView)!! mBinding.questionseditTitle.setOnEditorActionListener { _, _, e -> e?.keyCode == KeyEvent.KEYCODE_ENTER; } @@ -180,12 +183,24 @@ class QuestionEditActivity : ToolBarActivity(), KeyboardHeightObserver { // TitleEdit mBinding.questionseditTitle.addTextChangedListener(LimitTextWatcher(mBinding.questionseditTitle)) mBinding.questionseditTitle.filters = arrayOf(TextHelper.getFilter(50, "标题最多50个字")) + mBinding.questionseditTitle.addTextChangedListener { + checkPostButtonEnable() + } + mBinding.questionseditTitle.setOnTouchListener { v, event -> + closeExtendedKeyboard() + false + } // ContentEdit mBinding.questionseditContent.filters = arrayOf(TextHelper.getFilter(300, "内容最多300个字")) mBinding.questionseditContent.addTextChangedListener { mBinding.editorTextNumTv.text = "${mBinding.questionseditContent.text.length}/300" } + mBinding.questionseditContent.setOnTouchListener { v, event -> + closeExtendedKeyboard() + false + } + // Pic List picAdapter = QuestionsEditPicAdapter(this, mViewModel) @@ -354,20 +369,7 @@ class QuestionEditActivity : ToolBarActivity(), KeyboardHeightObserver { editorLink.visibility = View.GONE addLabelContainer.visibility = View.VISIBLE addLabelContainer.setOnClickListener { - val isShouldDelay = if (editorInsertDetailContainer.visibility == View.GONE) { - Util_System_Keyboard.hideSoftKeyboard(this@QuestionEditActivity) - changeAddLabel(true) - true - } else { - Util_System_Keyboard.showSoftKeyboard(this@QuestionEditActivity) - changeAddLabel(false) - false - } - editorInsertDetailContainer.postDelayed({ - editorInsertDetailContainer.visibility = if (editorInsertDetailContainer.visibility == View.GONE) View.VISIBLE else View.GONE - tagsContainer.visibility = if (editorInsertDetailContainer.visibility == View.VISIBLE) View.VISIBLE else View.GONE - mIsExtendedKeyboardShow = editorInsertDetailContainer.visibility == View.VISIBLE - }, if (isShouldDelay) 50 else 0L) + controlInsertDetailContainer() } editorImage.setOnClickListener { picAdapter.selectPic() @@ -387,6 +389,26 @@ class QuestionEditActivity : ToolBarActivity(), KeyboardHeightObserver { fun closeExtendedKeyboard() { mBinding.editorInsertContainer.editorInsertDetailContainer.visibility = View.GONE mIsExtendedKeyboardShow = false + changeAddLabel(false) + } + + fun controlInsertDetailContainer(){ + mBinding.editorInsertContainer.apply { + val isShouldDelay = if (editorInsertDetailContainer.visibility == View.GONE) { + Util_System_Keyboard.hideSoftKeyboard(this@QuestionEditActivity) + changeAddLabel(true) + true + } else { + Util_System_Keyboard.showSoftKeyboard(this@QuestionEditActivity) + changeAddLabel(false) + false + } + editorInsertDetailContainer.postDelayed({ + editorInsertDetailContainer.visibility = if (editorInsertDetailContainer.visibility == View.GONE) View.VISIBLE else View.GONE + tagsContainer.visibility = if (editorInsertDetailContainer.visibility == View.VISIBLE) View.VISIBLE else View.GONE + mIsExtendedKeyboardShow = editorInsertDetailContainer.visibility == View.VISIBLE + }, if (isShouldDelay) 50 else 0L) + } } override fun onMenuItemClick(menuItem: MenuItem?): Boolean { @@ -410,6 +432,11 @@ class QuestionEditActivity : ToolBarActivity(), KeyboardHeightObserver { return false } + private fun checkPostButtonEnable() { + val isEnabled = mViewModel.checkData() + mMenuPost.actionView.alpha = if (isEnabled) 1f else 0.6f + } + override fun onDestroy() { mProcessingDialog?.dismissAllowingStateLoss() mProcessingDialog = null @@ -547,6 +574,7 @@ class QuestionEditActivity : ToolBarActivity(), KeyboardHeightObserver { beginTransaction.commitAllowingStateLoss() mViewModel.selectedTags.clear() mViewModel.selectedTagsChange.postValue(true) + checkPostButtonEnable() } override fun onResume() { @@ -561,14 +589,10 @@ class QuestionEditActivity : ToolBarActivity(), KeyboardHeightObserver { override fun onKeyboardHeightChanged(height: Int, orientation: Int) { -// val params = mBinding.editorInsertContainer.root.layoutParams as RelativeLayout.LayoutParams -// if (height > 0) { -// params.bottomMargin = height + mOffset -// } else { -// params.bottomMargin = 0 -// mOffset = abs(height) -// } -// mBinding.editorInsertContainer.root.layoutParams = params + if (height > 0) { + changeAddLabel(false) + closeExtendedKeyboard() + } } companion object { diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/edit/QuestionEditViewModel.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/edit/QuestionEditViewModel.kt index df2c58e014..45160ee519 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/edit/QuestionEditViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/edit/QuestionEditViewModel.kt @@ -104,7 +104,7 @@ class QuestionEditViewModel(application: Application) : AndroidViewModel(applica * 检查标题是否符合规则 * 根据问题标题获取相应标签(问题编辑无需获取) */ - fun checkTitleAndLoadTitleTag() :Boolean{ + fun checkTitleAndLoadTitleTag(): Boolean { if (TextUtils.isEmpty(communityEntity?.id) || TextUtils.isEmpty(communityEntity?.name)) { Utils.toast(getApplication(), "论坛不能为空") return false @@ -132,6 +132,16 @@ class QuestionEditViewModel(application: Application) : AndroidViewModel(applica return true } + + fun checkData(): Boolean { + if (TextUtils.isEmpty(communityEntity?.id) || TextUtils.isEmpty(communityEntity?.name)) return false + if (TextUtils.isEmpty(title)) return false + // 检查标题长度限制 + title?.trim() + if (title!!.length < QUESTION_TITLE_MIN_LENGTH) return false + return true + } + /** * 根据问题标题获取相应标签(标签默认选中) */ diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/edit/TagsSelectFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/edit/TagsSelectFragment.kt index af22b7244e..17b768d70e 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/edit/TagsSelectFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/edit/TagsSelectFragment.kt @@ -267,8 +267,9 @@ class TagsSelectFragment : BaseFragment() { } } dialog.setOnDismissListener { - Util_System_Keyboard.hideSoftKeyboard(activity) this.view?.visibility = View.VISIBLE + requireActivity().currentFocus?.clearFocus() + (requireActivity() as QuestionEditActivity).controlInsertDetailContainer() } dialog.setCancelable(false) dialog.requestWindowFeature(Window.FEATURE_NO_TITLE) diff --git a/app/src/main/res/drawable/bg_editor_insert_add_label.xml b/app/src/main/res/drawable/bg_editor_insert_add_label.xml index 71480d5e4e..e729657d4b 100644 --- a/app/src/main/res/drawable/bg_editor_insert_add_label.xml +++ b/app/src/main/res/drawable/bg_editor_insert_add_label.xml @@ -2,7 +2,7 @@ diff --git a/app/src/main/res/layout/activity_community_article_edit.xml b/app/src/main/res/layout/activity_community_article_edit.xml index 6a83f76553..894654a7a4 100644 --- a/app/src/main/res/layout/activity_community_article_edit.xml +++ b/app/src/main/res/layout/activity_community_article_edit.xml @@ -4,6 +4,8 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/white" + android:focusable="true" + android:focusableInTouchMode="true" android:orientation="vertical"> diff --git a/app/src/main/res/layout/layout_menu_answer_post.xml b/app/src/main/res/layout/layout_menu_answer_post.xml index a8beb1df11..8a092019db 100644 --- a/app/src/main/res/layout/layout_menu_answer_post.xml +++ b/app/src/main/res/layout/layout_menu_answer_post.xml @@ -1,26 +1,22 @@ - + android:gravity="center" + android:text="@string/answer_post" + android:textColor="@color/white" + android:textSize="12sp" /> - + android:layout_gravity="center" /> + diff --git a/dependencies.gradle b/dependencies.gradle index 6b41d361a0..db84b34983 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -63,7 +63,7 @@ ext { leakcanary = '2.4' // 大图查看 - bigImageViewer = "1.6.5" + bigImageViewer = "1.7.0" bugly = "2.6.6" buglyTinkerSupport = "1.3.4"