【光环助手V4.6.0】论坛发布流程优化(201224-UI测试问题汇总) https://git.ghzs.com/pm/halo-app-issues/-/issues/1086
This commit is contained in:
@ -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
|
||||
|
||||
@ -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 + ""
|
||||
|
||||
|
||||
@ -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<GameIconView>(R.id.forum_icon_view)
|
||||
private val mGameName by bindView<TextView>(R.id.article_game_name)
|
||||
private val mEditTitle by bindView<EditText>(R.id.article_edit_title)
|
||||
private val mTitleContainer by bindView<LinearLayout>(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() {
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据问题标题获取相应标签(标签默认选中)
|
||||
*/
|
||||
|
||||
@ -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<String>() {
|
||||
}
|
||||
}
|
||||
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)
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据问题标题获取相应标签(标签默认选中)
|
||||
*/
|
||||
|
||||
@ -267,8 +267,9 @@ class TagsSelectFragment : BaseFragment<String>() {
|
||||
}
|
||||
}
|
||||
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)
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<stroke
|
||||
android:width="0.5dp"
|
||||
android:width="1dp"
|
||||
android:color="#1A1383EB" />
|
||||
<corners android:radius="999dp" />
|
||||
<solid android:color="#EAF5FF" />
|
||||
|
||||
@ -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">
|
||||
|
||||
<RelativeLayout
|
||||
@ -60,6 +62,7 @@
|
||||
android:hint="请输入标题"
|
||||
android:paddingLeft="18dp"
|
||||
android:paddingTop="17dp"
|
||||
android:paddingRight="18dp"
|
||||
android:paddingBottom="17dp"
|
||||
android:textColorHint="@color/text_cccccc"
|
||||
android:textCursorDrawable="@drawable/cursor_color"
|
||||
|
||||
@ -13,6 +13,8 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/white"
|
||||
android:focusable="true"
|
||||
android:focusableInTouchMode="true"
|
||||
android:orientation="vertical">
|
||||
|
||||
<RelativeLayout
|
||||
@ -134,7 +136,6 @@
|
||||
android:id="@+id/suggest_pic_rv"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginBottom="20dp"
|
||||
android:overScrollMode="never"
|
||||
android:paddingLeft="16dp"
|
||||
|
||||
@ -222,7 +222,8 @@
|
||||
android:id="@+id/editor_link_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="16dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:orientation="horizontal"
|
||||
android:visibility="gone"
|
||||
android:weightSum="4">
|
||||
|
||||
@ -1,26 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
|
||||
android:layout_width = "wrap_content"
|
||||
android:layout_height = "wrap_content"
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id = "@+id/menu_answer_post"
|
||||
android:layout_width = "wrap_content"
|
||||
android:layout_height = "wrap_content"
|
||||
android:layout_centerInParent = "true"
|
||||
android:gravity = "center"
|
||||
android:paddingRight="12dp"
|
||||
android:paddingLeft="12dp"
|
||||
android:paddingTop="6dp"
|
||||
android:paddingBottom="6dp"
|
||||
android:id="@+id/menu_answer_post"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_centerInParent="true"
|
||||
android:background="@drawable/textview_concern_red_up_round"
|
||||
android:textColor = "@color/white"
|
||||
android:textSize = "12sp"
|
||||
android:text = "@string/answer_post" />
|
||||
android:gravity="center"
|
||||
android:text="@string/answer_post"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="12sp" />
|
||||
|
||||
<View
|
||||
android:layout_width="16dp"
|
||||
android:layout_height="1dp"
|
||||
android:layout_gravity="center"/>
|
||||
</LinearLayout >
|
||||
android:layout_gravity="center" />
|
||||
</LinearLayout>
|
||||
|
||||
@ -63,7 +63,7 @@ ext {
|
||||
leakcanary = '2.4'
|
||||
|
||||
// 大图查看
|
||||
bigImageViewer = "1.6.5"
|
||||
bigImageViewer = "1.7.0"
|
||||
|
||||
bugly = "2.6.6"
|
||||
buglyTinkerSupport = "1.3.4"
|
||||
|
||||
Reference in New Issue
Block a user