From 49067706b7a0b94f699f61ffc112a89df59c8a3f Mon Sep 17 00:00:00 2001
From: jack <1484288157@qq.com>
Date: Tue, 16 Nov 2021 15:08:49 +0800
Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=85=89=E7=8E=AF=E5=8A=A9=E6=89=8BV5?=
=?UTF-8?q?.5.0=E3=80=91=E6=B8=B8=E6=88=8F=E5=8D=95-=E7=A4=BE=E5=8C=BA?=
=?UTF-8?q?=E7=9B=B8=E5=85=B3=20https://git.ghzs.com/pm/halo-app-issues/-/?=
=?UTF-8?q?issues/1595?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/src/main/AndroidManifest.xml | 14 ++--
.../com/gh/base/BaseRichEditorActivity.kt | 23 +++++--
.../com/gh/common/util/EntranceUtils.java | 1 +
.../collection/GamesCollectionAdapter.kt | 64 +++++++++++++-----
.../collection/GamesCollectionFragment.kt | 13 ++--
.../collection/GamesCollectionViewModel.kt | 12 ++--
.../publish/GameCollectionEditActivity.kt | 9 ++-
.../InsertGameCollectionWrapperActivity.kt | 48 +++++++++++++
.../qa/editor/OnLinkClickListener.kt | 51 ++++++++------
.../qa/entity/EditorInsertEntity.kt | 28 ++++++--
.../retrofit/service/ApiService.java | 2 +-
.../icon_editor_link_game_collection.webp | Bin 0 -> 792 bytes
.../activity_tablayout_no_title_viewpager.xml | 2 +-
.../res/layout/editor_insert_container.xml | 25 +++++++
14 files changed, 224 insertions(+), 68 deletions(-)
create mode 100644 app/src/main/java/com/gh/gamecenter/qa/editor/InsertGameCollectionWrapperActivity.kt
create mode 100644 app/src/main/res/drawable-xxhdpi/icon_editor_link_game_collection.webp
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index d7c76517d5..62c29feef6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -45,7 +45,7 @@
com.google.android.exoplayer2,
tv.danmaku.ijk.media.exo2,
pl.droidsonroids.gif,
- com.lzf.easyfloat"/>
+ com.lzf.easyfloat" />
+ android:screenOrientation="portrait" />
-
-
-
+
+
+
+
+
: ToolBarAct
mRichEditor.insertCustomStyleLink(insertData)
}
}
+ INSERT_GAME_COLLECTION_CODE -> {
+ val gameCollectionEntity = data?.getParcelableExtra(GamesCollectionEntity::class.java.simpleName)
+ if (gameCollectionEntity != null) {
+ mRichEditor.focusEditor()
+ insertData = EditorInsertEntity.transform(gameCollectionEntity)
+ mRichEditor.insertCustomStyleLink(insertData)
+ }
+ }
REQUEST_CODE_IMAGE -> {
if (data != null) mViewModel.uploadPic(data)
}
@@ -248,7 +254,7 @@ abstract class BaseRichEditorActivity : ToolBarAct
R.id.editor_paragraph_h4, R.id.editor_font_container, R.id.editor_paragraph_container,
R.id.editor_paragraph_quote, R.id.editor_link_answer, R.id.editor_link_article,
R.id.editor_link_game, R.id.editor_link_video, R.id.uploadVideoGuideClose,
- R.id.originalTipsClose
+ R.id.originalTipsClose, R.id.editor_link_game_collection
)
fun onRichClick(view: View) {
when (view.id) {
@@ -354,6 +360,12 @@ abstract class BaseRichEditorActivity : ToolBarAct
INSERT_GAME_CODE
)
}
+ R.id.editor_link_game_collection -> {
+ startActivityForResult(
+ InsertGameCollectionWrapperActivity.getIntent(this),
+ INSERT_GAME_COLLECTION_CODE
+ )
+ }
R.id.editor_link_video -> {
chooseVideo()
}
@@ -714,6 +726,7 @@ abstract class BaseRichEditorActivity : ToolBarAct
const val INSERT_ANSWER_CODE = 411
const val INSERT_ARTICLE_CODE = 412
const val INSERT_GAME_CODE = 413
+ const val INSERT_GAME_COLLECTION_CODE = 414
const val MAX_INPUT_TEXT_NUM = 10000
const val MAX_MEDIA_COUNT = 20
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 6a061d2211..159bd168c1 100644
--- a/app/src/main/java/com/gh/common/util/EntranceUtils.java
+++ b/app/src/main/java/com/gh/common/util/EntranceUtils.java
@@ -251,6 +251,7 @@ public class EntranceUtils {
public static final String KEY_PARENT_TAG = "parent_tag";
public static final String KEY_BLOCK_ID = "block_id";
public static final String KEY_BLOCK_NAME = "block_name";
+ public static final String KEY_INSERT_GAME_COLLECTION = "insert_game_collection";
public static void jumpActivity(Context context, Bundle bundle) {
bundle.putBoolean(KEY_REQUIRE_REDIRECT, true);
diff --git a/app/src/main/java/com/gh/gamecenter/collection/GamesCollectionAdapter.kt b/app/src/main/java/com/gh/gamecenter/collection/GamesCollectionAdapter.kt
index 9f6251eaa5..83b08f317e 100644
--- a/app/src/main/java/com/gh/gamecenter/collection/GamesCollectionAdapter.kt
+++ b/app/src/main/java/com/gh/gamecenter/collection/GamesCollectionAdapter.kt
@@ -1,8 +1,11 @@
package com.gh.gamecenter.collection
+import android.app.Activity
import android.content.Context
+import android.content.Intent
import android.view.View
import android.view.ViewGroup
+import androidx.appcompat.app.AppCompatActivity
import androidx.databinding.DataBindingUtil
import androidx.recyclerview.widget.RecyclerView
import com.gh.common.constant.ItemViewType
@@ -17,9 +20,10 @@ import com.gh.gamecenter.baselist.ListAdapter
import com.gh.gamecenter.entity.GamesCollectionEntity
import com.gh.gamecenter.manager.UserManager
-class GamesCollectionAdapter(context: Context,
- private val mViewModel: GamesCollectionViewModel
-): ListAdapter(context) {
+class GamesCollectionAdapter(
+ context: Context,
+ private val mViewModel: GamesCollectionViewModel
+) : ListAdapter(context) {
override fun getItemCount(): Int {
return if (mEntityList == null || mEntityList.isEmpty()) return 0 else mEntityList.size + 1
@@ -27,15 +31,22 @@ class GamesCollectionAdapter(context: Context,
override fun getItemViewType(position: Int): Int {
return if (position == itemCount - 1) {
- ItemViewType.ITEM_FOOTER
+ ItemViewType.ITEM_FOOTER
} else {
- ItemViewType.ITEM_BODY
+ ItemViewType.ITEM_BODY
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
return when (viewType) {
- ItemViewType.ITEM_BODY -> GameCollectionItemViewHolder(DataBindingUtil.inflate(mLayoutInflater, R.layout.game_collection_item, parent, false))
+ ItemViewType.ITEM_BODY -> GameCollectionItemViewHolder(
+ DataBindingUtil.inflate(
+ mLayoutInflater,
+ R.layout.game_collection_item,
+ parent,
+ false
+ )
+ )
else -> FooterViewHolder(mLayoutInflater.inflate(R.layout.refresh_footerview, parent, false))
}
@@ -59,19 +70,24 @@ class GamesCollectionAdapter(context: Context,
tagIv.setBackgroundResource(R.drawable.ic_official_big)
}
}
+ if (mViewModel.mIsInsertGameCollection) {
+ when (mViewModel.type) {
+ GamesCollectionFragment.TYPE_COLLECT -> {
+ userIcon.visibility = View.VISIBLE
+ userName.visibility = View.VISIBLE
+ timeTv.visibility = View.GONE
+ }
- when (mViewModel.type) {
- GamesCollectionFragment.TYPE_COLLECT -> {
- userIcon.visibility = View.VISIBLE
- userName.visibility = View.VISIBLE
- timeTv.visibility = View.GONE
- }
-
- GamesCollectionFragment.TYPE_USER -> {
- userIcon.visibility = View.GONE
- userName.visibility = View.GONE
- timeTv.visibility = View.VISIBLE
+ GamesCollectionFragment.TYPE_USER -> {
+ userIcon.visibility = View.GONE
+ userName.visibility = View.GONE
+ timeTv.visibility = View.VISIBLE
+ }
}
+ } else {
+ userIcon.visibility = View.VISIBLE
+ userName.visibility = View.VISIBLE
+ timeTv.visibility = View.GONE
}
myselfTag.setOnClickListener {
@@ -89,6 +105,20 @@ class GamesCollectionAdapter(context: Context,
gameThree.setOnClickListener {
GameDetailActivity.startGameDetailActivity(mContext, itemEntity.games?.safelyGetInRelease(2)?.id, "")
}
+ root.setOnClickListener {
+ if (mViewModel.mIsInsertGameCollection) {
+ val entity = GamesCollectionEntity().apply {
+ id = itemEntity.id
+ title = itemEntity.title
+ intro = itemEntity.intro
+ }
+ val intent = Intent().apply {
+ putExtra(GamesCollectionEntity::class.java.simpleName, entity)
+ }
+ (mContext as AppCompatActivity).setResult(Activity.RESULT_OK, intent)
+ (mContext as AppCompatActivity).finish()
+ }
+ }
}
}
diff --git a/app/src/main/java/com/gh/gamecenter/collection/GamesCollectionFragment.kt b/app/src/main/java/com/gh/gamecenter/collection/GamesCollectionFragment.kt
index 083307b33a..84bfc64f50 100644
--- a/app/src/main/java/com/gh/gamecenter/collection/GamesCollectionFragment.kt
+++ b/app/src/main/java/com/gh/gamecenter/collection/GamesCollectionFragment.kt
@@ -4,34 +4,35 @@ import android.os.Bundle
import android.view.View
import androidx.core.content.ContextCompat
import com.gh.common.util.*
-import com.gh.common.util.EntranceUtils.KEY_TYPE
-import com.gh.common.util.EntranceUtils.KEY_USER_ID
+import com.gh.common.util.EntranceUtils.*
import com.gh.common.view.SpacingItemDecoration
import com.gh.gamecenter.R
import com.gh.gamecenter.baselist.ListFragment
import com.gh.gamecenter.entity.GamesCollectionEntity
-class GamesCollectionFragment: ListFragment() {
+class GamesCollectionFragment : ListFragment() {
private var mUserId = ""
private var mType = ""
+ private var mIsInsertGameCollection = false
private var mAdapter: GamesCollectionAdapter? = null
override fun provideListViewModel() = viewModelProvider(
- GamesCollectionViewModel.Factory(mUserId, mType)
+ GamesCollectionViewModel.Factory(mUserId, mType, mIsInsertGameCollection)
)
override fun provideListAdapter() = mAdapter ?: GamesCollectionAdapter(requireContext(), mListViewModel).apply { mAdapter = this }
- override fun getItemDecoration() = SpacingItemDecoration(notDecorateTheFirstItem = mType == TYPE_USER, top = 16F.dip2px(), )
+ override fun getItemDecoration() = SpacingItemDecoration(notDecorateTheFirstItem = mType == TYPE_USER, top = 16F.dip2px())
override fun onCreate(savedInstanceState: Bundle?) {
mUserId = arguments?.getString(KEY_USER_ID, "") ?: ""
mType = arguments?.getString(KEY_TYPE, "") ?: ""
+ mIsInsertGameCollection = arguments?.getBoolean(KEY_INSERT_GAME_COLLECTION, false) ?: false
super.onCreate(savedInstanceState)
mListRv?.run {
overScrollMode = View.OVER_SCROLL_NEVER
- if (mType == TYPE_USER) setBackgroundColor(R.color.white.toColor())
+ if (!mIsInsertGameCollection && mType == TYPE_USER) setBackgroundColor(R.color.white.toColor())
}
}
diff --git a/app/src/main/java/com/gh/gamecenter/collection/GamesCollectionViewModel.kt b/app/src/main/java/com/gh/gamecenter/collection/GamesCollectionViewModel.kt
index 950e2719c1..556313fd51 100644
--- a/app/src/main/java/com/gh/gamecenter/collection/GamesCollectionViewModel.kt
+++ b/app/src/main/java/com/gh/gamecenter/collection/GamesCollectionViewModel.kt
@@ -9,13 +9,16 @@ import com.gh.gamecenter.retrofit.RetrofitManager
import com.halo.assistant.HaloApp
import io.reactivex.Single
-class GamesCollectionViewModel(application: Application, var userId: String, var type: String) :
+class GamesCollectionViewModel(application: Application, var userId: String, var type: String, val mIsInsertGameCollection: Boolean = false) :
ListViewModel(application) {
override fun provideDataObservable(page: Int) = null
override fun provideDataSingle(page: Int): Single> {
- return RetrofitManager.getInstance(getApplication()).api.getUserGameCollectionList(userId)
+ val map = if (mIsInsertGameCollection) {
+ hashMapOf("filter" to "display")
+ } else mapOf()
+ return RetrofitManager.getInstance(getApplication()).api.getUserGameCollectionList(userId, map)
}
override fun mergeResultLiveData() {
@@ -24,9 +27,10 @@ class GamesCollectionViewModel(application: Application, var userId: String, var
}
}
- class Factory(private val mUserId: String, private val mType: String) : ViewModelProvider.NewInstanceFactory() {
+ class Factory(private val mUserId: String, private val mType: String, private val mIsInsertGameCollection: Boolean) :
+ ViewModelProvider.NewInstanceFactory() {
override fun create(modelClass: Class): T {
- return GamesCollectionViewModel(HaloApp.getInstance().application, mUserId, mType) as T
+ return GamesCollectionViewModel(HaloApp.getInstance().application, mUserId, mType, mIsInsertGameCollection) as T
}
}
diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionEditActivity.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionEditActivity.kt
index a892f1be79..a91b3b5f4d 100644
--- a/app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionEditActivity.kt
+++ b/app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionEditActivity.kt
@@ -67,7 +67,7 @@ class GameCollectionEditActivity : ToolBarActivity() {
}
mBinding.gameCollectionIntroduceEt.run {
doOnTextChanged { text, start, _, _ ->
- if(PatternUtils.isHasWrap(text.toString())){
+ if (PatternUtils.isHasWrap(text.toString())) {
setText(PatternUtils.replaceWrap(text.toString()))
setSelection(start)
return@doOnTextChanged
@@ -172,7 +172,12 @@ class GameCollectionEditActivity : ToolBarActivity() {
}
}
mViewModel.detailLiveData.observe(this) {
- mViewModel.gameCollectionPatch = it
+ mViewModel.gameCollectionPatch?.apply {
+ games = it.games
+ tags = it.tags
+ title = it.title
+ intro = it.intro
+ }
mViewModel.gameCollectionPatch?.run {
//TODO:initTags
initData(false)
diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/InsertGameCollectionWrapperActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/InsertGameCollectionWrapperActivity.kt
new file mode 100644
index 0000000000..0baf3555ef
--- /dev/null
+++ b/app/src/main/java/com/gh/gamecenter/qa/editor/InsertGameCollectionWrapperActivity.kt
@@ -0,0 +1,48 @@
+package com.gh.gamecenter.qa.editor
+
+import android.content.Context
+import android.content.Intent
+import androidx.core.os.bundleOf
+import androidx.fragment.app.Fragment
+import com.gh.base.BaseActivity_TabLayout
+import com.gh.common.util.EntranceUtils
+import com.gh.gamecenter.R
+import com.gh.gamecenter.collection.GamesCollectionFragment
+import com.gh.gamecenter.manager.UserManager
+
+class InsertGameCollectionWrapperActivity : BaseActivity_TabLayout() {
+
+ override fun getLayoutId(): Int = R.layout.activity_tablayout_no_title_viewpager
+
+ override fun initFragmentList(fragments: MutableList?) {
+ fragments?.add(
+ GamesCollectionFragment().with(
+ bundleOf(
+ EntranceUtils.KEY_USER_ID to UserManager.getInstance().userId,
+ EntranceUtils.KEY_TYPE to GamesCollectionFragment.TYPE_USER,
+ EntranceUtils.KEY_INSERT_GAME_COLLECTION to true
+ )
+ )
+ )
+ fragments?.add(
+ GamesCollectionFragment().with(
+ bundleOf(
+ EntranceUtils.KEY_USER_ID to UserManager.getInstance().userId,
+ EntranceUtils.KEY_TYPE to GamesCollectionFragment.TYPE_COLLECT,
+ EntranceUtils.KEY_INSERT_GAME_COLLECTION to true
+ )
+ )
+ )
+ }
+
+ override fun initTabTitleList(tabTitleList: MutableList?) {
+ tabTitleList?.add("我的游戏单")
+ tabTitleList?.add("收藏游戏单")
+ }
+
+ companion object {
+ fun getIntent(context: Context): Intent {
+ return Intent(context, InsertGameCollectionWrapperActivity::class.java)
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/OnLinkClickListener.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/OnLinkClickListener.kt
index ef565f6dff..3d755a4073 100644
--- a/app/src/main/java/com/gh/gamecenter/qa/editor/OnLinkClickListener.kt
+++ b/app/src/main/java/com/gh/gamecenter/qa/editor/OnLinkClickListener.kt
@@ -18,12 +18,14 @@ import com.lightgame.utils.Utils
/**
* 富文本编辑框的链接回调
*/
-class OnLinkClickListener(val context: Context,
- val title: String = "",
- val status: String = "",
- val entrance: String,
- val path: String,
- val mtaEvent: MtaEvent? = null) {
+class OnLinkClickListener(
+ val context: Context,
+ val title: String = "",
+ val status: String = "",
+ val entrance: String,
+ val path: String,
+ val mtaEvent: MtaEvent? = null
+) {
@JavascriptInterface
fun onClick(content: String) {
AppExecutor.uiExecutor.execute {
@@ -31,25 +33,34 @@ class OnLinkClickListener(val context: Context,
val insertEntity = GsonUtils.fromJson(content, EditorInsertEntity::class.java)
when (insertEntity.type) {
"answer" -> {
- val intent = SimpleAnswerDetailActivity.getIntent(context,
- insertEntity.id ?: "",
- entrance,
- "$path-链接")
+ val intent = SimpleAnswerDetailActivity.getIntent(
+ context,
+ insertEntity.id ?: "",
+ entrance,
+ "$path-链接"
+ )
context.startActivity(intent)
}
"community_article" -> {
val community = CommunityEntity(insertEntity.communityId!!, "")
- val intent = ArticleDetailActivity.getIntent(context,
- community,
- insertEntity.id!!,
- entrance,
- "$path-链接")
+ val intent = ArticleDetailActivity.getIntent(
+ context,
+ community,
+ insertEntity.id!!,
+ entrance,
+ "$path-链接"
+ )
context.startActivity(intent)
}
"game" -> {
- GameDetailActivity.startGameDetailActivity(context,
- insertEntity.id,
- BaseActivity.mergeEntranceAndPath(entrance, "$path-链接"))
+ GameDetailActivity.startGameDetailActivity(
+ context,
+ insertEntity.id,
+ BaseActivity.mergeEntranceAndPath(entrance, "$path-链接")
+ )
+ }
+ "game_collection" -> {
+ //TODO:跳转游戏单详情
}
}
}
@@ -62,7 +73,7 @@ class OnLinkClickListener(val context: Context,
tryWithDefaultCatch {
if (mtaEvent != null) MtaHelper.onEvent(mtaEvent.name, mtaEvent.key, mtaEvent.value)
val videoEntity = GsonUtils.fromJson(content, MyVideoEntity::class.java)
- clickToastByStatus(videoEntity.status){
+ clickToastByStatus(videoEntity.status) {
FullScreenVideoActivity.start(context, title, videoEntity.url, videoEntity.poster)
}
}
@@ -71,7 +82,7 @@ class OnLinkClickListener(val context: Context,
@JavascriptInterface
fun onVideoClick(url: String, poster: String) {
- clickToastByStatus(status){
+ clickToastByStatus(status) {
FullScreenVideoActivity.start(context, title, url, poster)
}
}
diff --git a/app/src/main/java/com/gh/gamecenter/qa/entity/EditorInsertEntity.kt b/app/src/main/java/com/gh/gamecenter/qa/entity/EditorInsertEntity.kt
index cae2ca5aa5..5d4ae3ff93 100644
--- a/app/src/main/java/com/gh/gamecenter/qa/entity/EditorInsertEntity.kt
+++ b/app/src/main/java/com/gh/gamecenter/qa/entity/EditorInsertEntity.kt
@@ -3,16 +3,19 @@ package com.gh.gamecenter.qa.entity
import android.os.Parcelable
import com.gh.common.util.eliminateDoubleQuote
import com.gh.gamecenter.entity.GameEntity
+import com.gh.gamecenter.entity.GamesCollectionEntity
import kotlinx.android.parcel.Parcelize
@Parcelize
-data class EditorInsertEntity(var id: String? = "",
- var communityId: String? = "",
- var type: String? = "",
- var title: String? = "",
- var brief: String? = "",
- var icon: String? = "",
- var tags: List? = null) : Parcelable {
+data class EditorInsertEntity(
+ var id: String? = "",
+ var communityId: String? = "",
+ var type: String? = "",
+ var title: String? = "",
+ var brief: String? = "",
+ var icon: String? = "",
+ var tags: List? = null
+) : Parcelable {
companion object {
@JvmStatic
@@ -48,5 +51,16 @@ data class EditorInsertEntity(var id: String? = "",
entity.icon = game.icon
return entity
}
+
+ @JvmStatic
+ fun transform(game: GamesCollectionEntity): EditorInsertEntity {
+ val entity = EditorInsertEntity()
+ entity.id = game.id
+ entity.type = "game_collection"
+ entity.title = game.title
+ entity.brief = game.intro
+ entity.icon = "https://static-web.ghzs.com/website-static/images/icon_game_collection.png"
+ return entity
+ }
}
}
\ No newline at end of file
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 6262bcdfa4..118978596b 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
@@ -3305,5 +3305,5 @@ public interface ApiService {
* 用户游戏单列表
*/
@GET("users/{user_id}/game_lists")
- Single> getUserGameCollectionList(@Path("user_id") String userId);
+ Single> getUserGameCollectionList(@Path("user_id") String userId, @QueryMap Map params);
}
\ No newline at end of file
diff --git a/app/src/main/res/drawable-xxhdpi/icon_editor_link_game_collection.webp b/app/src/main/res/drawable-xxhdpi/icon_editor_link_game_collection.webp
new file mode 100644
index 0000000000000000000000000000000000000000..4fe08c4894143ab79a82f40ba18daecbe4d908b6
GIT binary patch
literal 792
zcmV+z1LyowNk&Ex0{{S5MM6+kP&il$0000G0000x002P%06|PpNNE88009@nux;D0
z!AW+!Eh6F(Gr^Rs$N+}Pdi3{1cP=Jpi%56@F-AYaNgI_Qhy(z1ZQB$juN^2It8`sg$j8yzA5;Pmy?aTGkd^w0Eat$K6
zIRLQSk+^{VOqD=)*#K?=MVNe_K>OiZd;2P~Z{~h{&lc#<-Uu9-DUWXh#y)|kDWm!B
z__j=}3Gk@VHXr|o!(g!}()8#>1{2_eT1i{!a^ckmN)Q0B}rYPxDA6
z3}9hIWfeex6MX}KO)6KKYx(*+p_P&gof0RRB7
z2>_h|Dm(x}06vjCoJl34BOxm?OR%sK31s@C|7clx7w
zP9=WXK%Tep7--gLa%P(d<)tiH{V$~pH8w`f=}G9bWn1dDN+N_ebVguC$Vn?REm$J%
z1sr+<3St0YsH+-5F)=Cz+-t>O)@DJpf$W-#MEzFOtP5~O=Am1#s-bb#12I)&`F*r+
zE0^RZ5RKdG!a&D{if)O6d=LQg+RDyg6L@0|V;<2=k{+BUT02%>#512OUM`OVe|7i!
zAFbKPtz>7&XoO9OzeuUG3vBl4nIbQg=R!&pDeCcjrRV1
zWTX&tIxDU=78Q6qO%D$KI43W2M1KdL)bHU=4b
WH6M$5>aroT`lf*GnLuwL2mk<8sAqTp
literal 0
HcmV?d00001
diff --git a/app/src/main/res/layout/activity_tablayout_no_title_viewpager.xml b/app/src/main/res/layout/activity_tablayout_no_title_viewpager.xml
index 128a96300a..62b06767a4 100644
--- a/app/src/main/res/layout/activity_tablayout_no_title_viewpager.xml
+++ b/app/src/main/res/layout/activity_tablayout_no_title_viewpager.xml
@@ -18,7 +18,7 @@
diff --git a/app/src/main/res/layout/editor_insert_container.xml b/app/src/main/res/layout/editor_insert_container.xml
index a4228dd546..226f336008 100644
--- a/app/src/main/res/layout/editor_insert_container.xml
+++ b/app/src/main/res/layout/editor_insert_container.xml
@@ -275,6 +275,31 @@
android:textSize="11sp" />
+
+
+
+
+
+
+