From 9c6f40419022f6babb33a28b369f4a919243965a Mon Sep 17 00:00:00 2001
From: pppscn <35696959@qq.com>
Date: Tue, 14 Feb 2023 16:43:24 +0800
Subject: [PATCH] =?UTF-8?q?=E6=95=B4=E7=90=86=EF=BC=9ACode=20Review?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/proguard-rules.pro | 7 +
app/src/main/AndroidManifest.xml | 4 +-
.../adapter/base/delegate/XDelegateAdapter.kt | 536 +++++++++---------
.../idormy/sms/forwarder/core/BaseActivity.kt | 312 +++++-----
.../forwarder/core/BaseContainerFragment.kt | 172 +++---
.../core/webview/LollipopFixedWebView.kt | 102 ++--
.../core/webview/MiddlewareWebViewClient.kt | 263 ++++-----
.../idormy/sms/forwarder/entity/ImageInfo.kt | 174 +++---
.../entity/setting/FeishuAppSetting.kt | 1 +
.../forwarder/fragment/FrpcEditFragment.kt | 290 +++++-----
.../fragment/senders/UrlSchemeFragment.kt | 2 +-
.../idormy/sms/forwarder/utils/CacheUtils.kt | 209 +++----
.../sms/forwarder/utils/KeepAliveUtils.kt | 101 ++--
.../idormy/sms/forwarder/utils/PhoneUtils.kt | 2 +-
.../sms/forwarder/utils/SharedPreference.kt | 1 +
.../sms/forwarder/utils/mail/MailSender.kt | 94 +--
.../sms/forwarder/utils/sdkinit/UMengInit.kt | 6 +-
build.gradle | 8 +-
18 files changed, 1148 insertions(+), 1136 deletions(-)
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
index b0c483e2..30973e29 100644
--- a/app/proguard-rules.pro
+++ b/app/proguard-rules.pro
@@ -291,3 +291,10 @@
-keep interface * implements com.xuexiang.xrouter.facade.template.IProvider
# 如果使用了 单类注入,即不定义接口实现 IProvider,需添加下面规则,保护实现
-keep class * implements com.xuexiang.xrouter.facade.template.IProvider
+
+-dontwarn com.alipay.sdk.**
+-dontwarn com.android.org.conscrypt.**
+-dontwarn java.awt.image.**
+-dontwarn javax.lang.model.**
+-dontwarn javax.naming.**
+-dontwarn javax.naming.directory.**
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index cb804787..88db84ad 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -8,6 +8,7 @@
tools:ignore="QueryAllPackagesPermission" />
+
@@ -55,9 +56,6 @@
-
-
-
: DelegateAdapter.Adapter {
- /**
- * 数据源
- */
- private val mData: MutableList = ArrayList()
- /**
- * @return 当前列表的选中项
- */
- /**
- * 当前点击的条目
- */
- private var selectPosition = -1
-
- constructor()
- constructor(list: Collection?) {
- if (list != null) {
- mData.addAll(list)
- }
- }
-
- constructor(data: Array?) {
- if (data != null && data.isNotEmpty()) {
- mData.addAll(listOf(*data))
- }
- }
-
- /**
- * 构建自定义的ViewHolder
- *
- * @param parent
- * @param viewType
- * @return
- */
- protected abstract fun getViewHolder(parent: ViewGroup, viewType: Int): V
-
- /**
- * 绑定数据
- *
- * @param holder
- * @param position 索引
- * @param item 列表项
- */
- protected abstract fun bindData(holder: V, position: Int, item: T)
-
- /**
- * 加载布局获取控件
- *
- * @param parent 父布局
- * @param layoutId 布局ID
- * @return
- */
- protected fun inflateView(parent: ViewGroup, @LayoutRes layoutId: Int): View {
- return LayoutInflater.from(parent.context).inflate(layoutId, parent, false)
- }
-
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): V {
- return getViewHolder(parent, viewType)
- }
-
- override fun onBindViewHolder(holder: V, position: Int) {
- bindData(holder, position, mData[position])
- }
-
- /**
- * 获取列表项
- *
- * @param position
- * @return
- */
- private fun getItem(position: Int): T? {
- return if (checkPosition(position)) mData[position] else null
- }
-
- private fun checkPosition(position: Int): Boolean {
- return position >= 0 && position <= mData.size - 1
- }
-
- val isEmpty: Boolean
- get() = itemCount == 0
-
- override fun getItemCount(): Int {
- return mData.size
- }
-
- /**
- * @return 数据源
- */
- val data: List
- get() = mData
-
- /**
- * 给指定位置添加一项
- *
- * @param pos
- * @param item
- * @return
- */
- fun add(pos: Int, item: T): XDelegateAdapter<*, *> {
- mData.add(pos, item)
- notifyItemInserted(pos)
- return this
- }
-
- /**
- * 在列表末端增加一项
- *
- * @param item
- * @return
- */
- fun add(item: T): XDelegateAdapter<*, *> {
- mData.add(item)
- notifyItemInserted(mData.size - 1)
- return this
- }
-
- /**
- * 删除列表中指定索引的数据
- *
- * @param pos
- * @return
- */
- fun delete(pos: Int): XDelegateAdapter<*, *> {
- mData.removeAt(pos)
- notifyItemRemoved(pos)
- return this
- }
-
- /**
- * 刷新列表中指定位置的数据
- *
- * @param pos
- * @param item
- * @return
- */
- fun refresh(pos: Int, item: T): XDelegateAdapter<*, *> {
- mData[pos] = item
- notifyItemChanged(pos)
- return this
- }
-
- /**
- * 刷新列表数据
- *
- * @param collection
- * @return
- */
- @SuppressLint("NotifyDataSetChanged")
- open fun refresh(collection: Collection?): XDelegateAdapter<*, *> {
- if (collection != null) {
- mData.clear()
- mData.addAll(collection)
- selectPosition = -1
- notifyDataSetChanged()
- }
- return this
- }
-
- /**
- * 刷新列表数据
- *
- * @param array
- * @return
- */
- @SuppressLint("NotifyDataSetChanged")
- fun refresh(array: Array?): XDelegateAdapter<*, *> {
- if (array != null && array.isNotEmpty()) {
- mData.clear()
- mData.addAll(listOf(*array))
- selectPosition = -1
- notifyDataSetChanged()
- }
- return this
- }
-
- /**
- * 加载更多
- *
- * @param collection
- * @return
- */
- @SuppressLint("NotifyDataSetChanged")
- fun loadMore(collection: Collection?): XDelegateAdapter<*, *> {
- if (collection != null) {
- mData.addAll(collection)
- notifyDataSetChanged()
- }
- return this
- }
-
- /**
- * 加载更多
- *
- * @param array
- * @return
- */
- @SuppressLint("NotifyDataSetChanged")
- fun loadMore(array: Array?): XDelegateAdapter<*, *> {
- if (array != null && array.isNotEmpty()) {
- mData.addAll(listOf(*array))
- notifyDataSetChanged()
- }
- return this
- }
-
- /**
- * 添加一个
- *
- * @param item
- * @return
- */
- @SuppressLint("NotifyDataSetChanged")
- fun load(item: T?): XDelegateAdapter<*, *> {
- if (item != null) {
- mData.add(item)
- notifyDataSetChanged()
- }
- return this
- }
-
- /**
- * 设置当前列表的选中项
- *
- * @param selectPosition
- * @return
- */
- @SuppressLint("NotifyDataSetChanged")
- fun setSelectPosition(selectPosition: Int): XDelegateAdapter<*, *> {
- this.selectPosition = selectPosition
- notifyDataSetChanged()
- return this
- }
-
- /**
- * 获取当前列表选中项
- *
- * @return 当前列表选中项
- */
- val selectItem: T?
- get() = getItem(selectPosition)
-
- /**
- * 清除数据
- */
- @SuppressLint("NotifyDataSetChanged")
- fun clear() {
- if (!isEmpty) {
- mData.clear()
- selectPosition = -1
- notifyDataSetChanged()
- }
- }
+package com.idormy.sms.forwarder.adapter.base.delegate
+
+import android.annotation.SuppressLint
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.annotation.LayoutRes
+import androidx.recyclerview.widget.RecyclerView
+import com.alibaba.android.vlayout.DelegateAdapter
+
+/**
+ * 基础DelegateAdapter
+ *
+ * @author xuexiang
+ * @since 2020/3/20 12:17 AM
+ */
+@Suppress("unused", "WRONG_TYPE_PARAMETER_NULLABILITY_FOR_JAVA_OVERRIDE")
+abstract class XDelegateAdapter : DelegateAdapter.Adapter {
+ /**
+ * 数据源
+ */
+ private val mData: MutableList = ArrayList()
+ /**
+ * @return 当前列表的选中项
+ */
+ /**
+ * 当前点击的条目
+ */
+ private var selectPosition = -1
+
+ constructor()
+ constructor(list: Collection?) {
+ if (list != null) {
+ mData.addAll(list)
+ }
+ }
+
+ constructor(data: Array?) {
+ if (data != null && data.isNotEmpty()) {
+ mData.addAll(listOf(*data))
+ }
+ }
+
+ /**
+ * 构建自定义的ViewHolder
+ *
+ * @param parent
+ * @param viewType
+ * @return
+ */
+ protected abstract fun getViewHolder(parent: ViewGroup, viewType: Int): V
+
+ /**
+ * 绑定数据
+ *
+ * @param holder
+ * @param position 索引
+ * @param item 列表项
+ */
+ protected abstract fun bindData(holder: V, position: Int, item: T)
+
+ /**
+ * 加载布局获取控件
+ *
+ * @param parent 父布局
+ * @param layoutId 布局ID
+ * @return
+ */
+ protected fun inflateView(parent: ViewGroup, @LayoutRes layoutId: Int): View {
+ return LayoutInflater.from(parent.context).inflate(layoutId, parent, false)
+ }
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): V {
+ return getViewHolder(parent, viewType)
+ }
+
+ override fun onBindViewHolder(holder: V, position: Int) {
+ bindData(holder, position, mData[position])
+ }
+
+ /**
+ * 获取列表项
+ *
+ * @param position
+ * @return
+ */
+ private fun getItem(position: Int): T? {
+ return if (checkPosition(position)) mData[position] else null
+ }
+
+ private fun checkPosition(position: Int): Boolean {
+ return position >= 0 && position <= mData.size - 1
+ }
+
+ val isEmpty: Boolean
+ get() = itemCount == 0
+
+ override fun getItemCount(): Int {
+ return mData.size
+ }
+
+ /**
+ * @return 数据源
+ */
+ val data: List
+ get() = mData
+
+ /**
+ * 给指定位置添加一项
+ *
+ * @param pos
+ * @param item
+ * @return
+ */
+ fun add(pos: Int, item: T): XDelegateAdapter<*, *> {
+ mData.add(pos, item)
+ notifyItemInserted(pos)
+ return this
+ }
+
+ /**
+ * 在列表末端增加一项
+ *
+ * @param item
+ * @return
+ */
+ fun add(item: T): XDelegateAdapter<*, *> {
+ mData.add(item)
+ notifyItemInserted(mData.size - 1)
+ return this
+ }
+
+ /**
+ * 删除列表中指定索引的数据
+ *
+ * @param pos
+ * @return
+ */
+ fun delete(pos: Int): XDelegateAdapter<*, *> {
+ mData.removeAt(pos)
+ notifyItemRemoved(pos)
+ return this
+ }
+
+ /**
+ * 刷新列表中指定位置的数据
+ *
+ * @param pos
+ * @param item
+ * @return
+ */
+ fun refresh(pos: Int, item: T): XDelegateAdapter<*, *> {
+ mData[pos] = item
+ notifyItemChanged(pos)
+ return this
+ }
+
+ /**
+ * 刷新列表数据
+ *
+ * @param collection
+ * @return
+ */
+ @SuppressLint("NotifyDataSetChanged")
+ open fun refresh(collection: Collection?): XDelegateAdapter<*, *> {
+ if (collection != null) {
+ mData.clear()
+ mData.addAll(collection)
+ selectPosition = -1
+ notifyDataSetChanged()
+ }
+ return this
+ }
+
+ /**
+ * 刷新列表数据
+ *
+ * @param array
+ * @return
+ */
+ @SuppressLint("NotifyDataSetChanged")
+ fun refresh(array: Array?): XDelegateAdapter<*, *> {
+ if (array != null && array.isNotEmpty()) {
+ mData.clear()
+ mData.addAll(listOf(*array))
+ selectPosition = -1
+ notifyDataSetChanged()
+ }
+ return this
+ }
+
+ /**
+ * 加载更多
+ *
+ * @param collection
+ * @return
+ */
+ @SuppressLint("NotifyDataSetChanged")
+ fun loadMore(collection: Collection?): XDelegateAdapter<*, *> {
+ if (collection != null) {
+ mData.addAll(collection)
+ notifyDataSetChanged()
+ }
+ return this
+ }
+
+ /**
+ * 加载更多
+ *
+ * @param array
+ * @return
+ */
+ @SuppressLint("NotifyDataSetChanged")
+ fun loadMore(array: Array?): XDelegateAdapter<*, *> {
+ if (array != null && array.isNotEmpty()) {
+ mData.addAll(listOf(*array))
+ notifyDataSetChanged()
+ }
+ return this
+ }
+
+ /**
+ * 添加一个
+ *
+ * @param item
+ * @return
+ */
+ @SuppressLint("NotifyDataSetChanged")
+ fun load(item: T?): XDelegateAdapter<*, *> {
+ if (item != null) {
+ mData.add(item)
+ notifyDataSetChanged()
+ }
+ return this
+ }
+
+ /**
+ * 设置当前列表的选中项
+ *
+ * @param selectPosition
+ * @return
+ */
+ @SuppressLint("NotifyDataSetChanged")
+ fun setSelectPosition(selectPosition: Int): XDelegateAdapter<*, *> {
+ this.selectPosition = selectPosition
+ notifyDataSetChanged()
+ return this
+ }
+
+ /**
+ * 获取当前列表选中项
+ *
+ * @return 当前列表选中项
+ */
+ val selectItem: T?
+ get() = getItem(selectPosition)
+
+ /**
+ * 清除数据
+ */
+ @SuppressLint("NotifyDataSetChanged")
+ fun clear() {
+ if (!isEmpty) {
+ mData.clear()
+ selectPosition = -1
+ notifyDataSetChanged()
+ }
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/idormy/sms/forwarder/core/BaseActivity.kt b/app/src/main/java/com/idormy/sms/forwarder/core/BaseActivity.kt
index a36e7205..345e78f2 100644
--- a/app/src/main/java/com/idormy/sms/forwarder/core/BaseActivity.kt
+++ b/app/src/main/java/com/idormy/sms/forwarder/core/BaseActivity.kt
@@ -1,157 +1,157 @@
-package com.idormy.sms.forwarder.core
-
-import android.content.Context
-import android.os.Bundle
-import android.view.LayoutInflater
-import android.view.View
-import androidx.viewbinding.ViewBinding
-import com.xuexiang.xpage.base.XPageActivity
-import com.xuexiang.xpage.base.XPageFragment
-import com.xuexiang.xpage.core.CoreSwitchBean
-import com.xuexiang.xrouter.facade.service.SerializationService
-import com.xuexiang.xrouter.launcher.XRouter
-import com.xuexiang.xui.utils.ResUtils
-import com.xuexiang.xui.widget.slideback.SlideBack
-import io.github.inflationx.viewpump.ViewPumpContextWrapper
-
-/**
- * 基础容器Activity
- *
- * @author XUE
- * @since 2019/3/22 11:21
- */
-@Suppress("MemberVisibilityCanBePrivate", "UNCHECKED_CAST")
-open class BaseActivity : XPageActivity() {
- /**
- * 获取Binding
- *
- * @return Binding
- */
- /**
- * ViewBinding
- */
- var binding: Binding? = null
- protected set
-
- override fun attachBaseContext(newBase: Context) {
- //注入字体
- super.attachBaseContext(ViewPumpContextWrapper.wrap(newBase))
- }
-
- override fun getCustomRootView(): View? {
- binding = viewBindingInflate(layoutInflater)
- return if (binding != null) binding!!.root else null
- }
-
- override fun onCreate(savedInstanceState: Bundle?) {
- initStatusBarStyle()
- super.onCreate(savedInstanceState)
- registerSlideBack()
- }
-
- /**
- * 构建ViewBinding
- *
- * @param inflater inflater
- * @return ViewBinding
- */
- protected open fun viewBindingInflate(inflater: LayoutInflater?): Binding? {
- return null
- }
-
- /**
- * 初始化状态栏的样式
- */
- protected open fun initStatusBarStyle() {}
-
- /**
- * 打开fragment
- *
- * @param clazz 页面类
- * @param addToBackStack 是否添加到栈中
- * @return 打开的fragment对象
- */
- fun openPage(clazz: Class?, addToBackStack: Boolean): T {
- val page = CoreSwitchBean(clazz)
- .setAddToBackStack(addToBackStack)
- return openPage(page) as T
- }
-
- /**
- * 打开fragment
- *
- * @return 打开的fragment对象
- */
- fun openNewPage(clazz: Class?): T {
- val page = CoreSwitchBean(clazz)
- .setNewActivity(true)
- return openPage(page) as T
- }
-
- /**
- * 切换fragment
- *
- * @param clazz 页面类
- * @return 打开的fragment对象
- */
- fun switchPage(clazz: Class?): T {
- return openPage(clazz, false)
- }
-
- /**
- * 序列化对象
- *
- * @param object
- * @return
- */
- fun serializeObject(`object`: Any?): String {
- return XRouter.getInstance().navigation(SerializationService::class.java)
- .object2Json(`object`)
- }
-
- override fun onRelease() {
- unregisterSlideBack()
- super.onRelease()
- }
-
- /**
- * 注册侧滑回调
- */
- protected fun registerSlideBack() {
- if (isSupportSlideBack) {
- SlideBack.with(this)
- .haveScroll(true)
- .edgeMode(if (ResUtils.isRtl()) SlideBack.EDGE_RIGHT else SlideBack.EDGE_LEFT)
- .callBack { popPage() }
- .register()
- }
- }
-
- /**
- * 注销侧滑回调
- */
- protected fun unregisterSlideBack() {
- if (isSupportSlideBack) {
- SlideBack.unregister(this)
- }
- }
-
- /**
- * @return 是否支持侧滑返回
- */
- protected open val isSupportSlideBack: Boolean
- get() {
- val page: CoreSwitchBean? = intent.getParcelableExtra(CoreSwitchBean.KEY_SWITCH_BEAN)
- return page == null || page.bundle == null || page.bundle.getBoolean(
- KEY_SUPPORT_SLIDE_BACK,
- true
- )
- }
-
- companion object {
- /**
- * 是否支持侧滑返回
- */
- const val KEY_SUPPORT_SLIDE_BACK = "key_support_slide_back"
- }
+package com.idormy.sms.forwarder.core
+
+import android.content.Context
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import androidx.viewbinding.ViewBinding
+import com.xuexiang.xpage.base.XPageActivity
+import com.xuexiang.xpage.base.XPageFragment
+import com.xuexiang.xpage.core.CoreSwitchBean
+import com.xuexiang.xrouter.facade.service.SerializationService
+import com.xuexiang.xrouter.launcher.XRouter
+import com.xuexiang.xui.utils.ResUtils
+import com.xuexiang.xui.widget.slideback.SlideBack
+import io.github.inflationx.viewpump.ViewPumpContextWrapper
+
+/**
+ * 基础容器Activity
+ *
+ * @author XUE
+ * @since 2019/3/22 11:21
+ */
+@Suppress("MemberVisibilityCanBePrivate", "UNCHECKED_CAST", "DEPRECATION")
+open class BaseActivity : XPageActivity() {
+ /**
+ * 获取Binding
+ *
+ * @return Binding
+ */
+ /**
+ * ViewBinding
+ */
+ var binding: Binding? = null
+ protected set
+
+ override fun attachBaseContext(newBase: Context) {
+ //注入字体
+ super.attachBaseContext(ViewPumpContextWrapper.wrap(newBase))
+ }
+
+ override fun getCustomRootView(): View? {
+ binding = viewBindingInflate(layoutInflater)
+ return if (binding != null) binding!!.root else null
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ initStatusBarStyle()
+ super.onCreate(savedInstanceState)
+ registerSlideBack()
+ }
+
+ /**
+ * 构建ViewBinding
+ *
+ * @param inflater inflater
+ * @return ViewBinding
+ */
+ protected open fun viewBindingInflate(inflater: LayoutInflater?): Binding? {
+ return null
+ }
+
+ /**
+ * 初始化状态栏的样式
+ */
+ protected open fun initStatusBarStyle() {}
+
+ /**
+ * 打开fragment
+ *
+ * @param clazz 页面类
+ * @param addToBackStack 是否添加到栈中
+ * @return 打开的fragment对象
+ */
+ fun openPage(clazz: Class?, addToBackStack: Boolean): T {
+ val page = CoreSwitchBean(clazz)
+ .setAddToBackStack(addToBackStack)
+ return openPage(page) as T
+ }
+
+ /**
+ * 打开fragment
+ *
+ * @return 打开的fragment对象
+ */
+ fun openNewPage(clazz: Class?): T {
+ val page = CoreSwitchBean(clazz)
+ .setNewActivity(true)
+ return openPage(page) as T
+ }
+
+ /**
+ * 切换fragment
+ *
+ * @param clazz 页面类
+ * @return 打开的fragment对象
+ */
+ fun switchPage(clazz: Class?): T {
+ return openPage(clazz, false)
+ }
+
+ /**
+ * 序列化对象
+ *
+ * @param object
+ * @return
+ */
+ fun serializeObject(`object`: Any?): String {
+ return XRouter.getInstance().navigation(SerializationService::class.java)
+ .object2Json(`object`)
+ }
+
+ override fun onRelease() {
+ unregisterSlideBack()
+ super.onRelease()
+ }
+
+ /**
+ * 注册侧滑回调
+ */
+ protected fun registerSlideBack() {
+ if (isSupportSlideBack) {
+ SlideBack.with(this)
+ .haveScroll(true)
+ .edgeMode(if (ResUtils.isRtl()) SlideBack.EDGE_RIGHT else SlideBack.EDGE_LEFT)
+ .callBack { popPage() }
+ .register()
+ }
+ }
+
+ /**
+ * 注销侧滑回调
+ */
+ protected fun unregisterSlideBack() {
+ if (isSupportSlideBack) {
+ SlideBack.unregister(this)
+ }
+ }
+
+ /**
+ * @return 是否支持侧滑返回
+ */
+ protected open val isSupportSlideBack: Boolean
+ get() {
+ val page: CoreSwitchBean? = intent.getParcelableExtra(CoreSwitchBean.KEY_SWITCH_BEAN)
+ return page == null || page.bundle == null || page.bundle.getBoolean(
+ KEY_SUPPORT_SLIDE_BACK,
+ true
+ )
+ }
+
+ companion object {
+ /**
+ * 是否支持侧滑返回
+ */
+ const val KEY_SUPPORT_SLIDE_BACK = "key_support_slide_back"
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/idormy/sms/forwarder/core/BaseContainerFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/core/BaseContainerFragment.kt
index 053eae9d..b10d014e 100644
--- a/app/src/main/java/com/idormy/sms/forwarder/core/BaseContainerFragment.kt
+++ b/app/src/main/java/com/idormy/sms/forwarder/core/BaseContainerFragment.kt
@@ -1,87 +1,87 @@
-package com.idormy.sms.forwarder.core
-
-import android.content.res.Configuration
-import android.view.View
-import android.view.ViewGroup
-import android.widget.AdapterView
-import com.umeng.analytics.MobclickAgent
-import com.xuexiang.xaop.annotation.SingleClick
-import com.xuexiang.xpage.base.XPageContainerListFragment
-import com.xuexiang.xui.widget.actionbar.TitleBar
-import com.xuexiang.xui.widget.actionbar.TitleUtils
-
-/**
- * 修改列表样式为主副标题显示
- *
- * @author xuexiang
- * @since 2018/11/22 上午11:26
- */
-@Suppress("unused")
-abstract class BaseContainerFragment : XPageContainerListFragment() {
- override fun initPage() {
- initTitle()
- initViews()
- initListeners()
- }
-
- protected fun initTitle(): TitleBar {
- return TitleUtils.addTitleBarDynamic(
- rootView as ViewGroup,
- pageTitle
- ) { popToBack() }
- }
-
- override fun initData() {
- mSimpleData = initSimpleData(mSimpleData)
- val data: MutableList